首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >谷歌脚本- setValue

谷歌脚本- setValue
EN

Stack Overflow用户
提问于 2017-11-08 13:46:04
回答 3查看 273关注 0票数 0

我正在努力学习谷歌脚本。我想编写一个脚本,它使用For循环来保存每个单元格的值,清除该单元格,然后将保存的值粘贴回其中。数据在单元格C6 - C17中。到目前为止,我可以让我的For循环用1秒的停顿逐个清除每个单元格,但我不知道如何使用setValue将值复制回单元格。如果我将最后一行改为测试(“source.setValue”),那么我的脚本可以正常工作,清除每个单元格,然后将其替换为“测试”。

下面是我的代码:

代码语言:javascript
复制
function forceRefresh() {
    var ss = SpreadsheetApp.getActiveSpreadsheet();
    var sheet = ss.getSheetByName("Fidelity Daily");
    for (var i =6 ; i<=17;i++)
    {
        var source = sheet.getRange(i,3);
        var values = source.getValues();
        source.clear();
        Utilities.sleep(1000);
        source.setValue(values);
    }
}
EN

回答 3

Stack Overflow用户

发布于 2017-11-08 15:48:34

getValues()检索到的值是二维数组。在您的脚本中,values[["value"]]。因此,对于问题中的脚本,当您希望使用setValue()values导入到单元格时,需要进行如下修改。

发自:

代码语言:javascript
复制
source.setValue(values);

至:

代码语言:javascript
复制
source.setValue(values[0][0]);

注意:

如果想从一个单元格中检索一个值,可以使用getValue()。在这种情况下,source.setValue(value);可以使用由getValue()检索到的value

参考文献:

我不知道这是不是给你的答案。如果我误解了你的问题,我很抱歉。

票数 1
EN

Stack Overflow用户

发布于 2017-11-08 23:04:37

我能够通过在source.clear()命令之后添加命令SpreadsheetApp.flush()来解决我的问题。

票数 0
EN

Stack Overflow用户

发布于 2019-04-08 20:23:45

你第二个问题的答案。

Utilities.sleep只在每个函数的开头运行一次。我希望这能帮到你。

不幸的是,在google script中没有像delay()这样的命令。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47172381

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档