我正在努力学习谷歌脚本。我想编写一个脚本,它使用For循环来保存每个单元格的值,清除该单元格,然后将保存的值粘贴回其中。数据在单元格C6 - C17中。到目前为止,我可以让我的For循环用1秒的停顿逐个清除每个单元格,但我不知道如何使用setValue将值复制回单元格。如果我将最后一行改为测试(“source.setValue”),那么我的脚本可以正常工作,清除每个单元格,然后将其替换为“测试”。
下面是我的代码:
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);
}
}发布于 2017-11-08 15:48:34
getValues()检索到的值是二维数组。在您的脚本中,values是[["value"]]。因此,对于问题中的脚本,当您希望使用setValue()将values导入到单元格时,需要进行如下修改。
发自:
source.setValue(values);至:
source.setValue(values[0][0]);注意:
如果想从一个单元格中检索一个值,可以使用getValue()。在这种情况下,source.setValue(value);可以使用由getValue()检索到的value。
参考文献:
我不知道这是不是给你的答案。如果我误解了你的问题,我很抱歉。
发布于 2017-11-08 23:04:37
我能够通过在source.clear()命令之后添加命令SpreadsheetApp.flush()来解决我的问题。
发布于 2019-04-08 20:23:45
你第二个问题的答案。
Utilities.sleep只在每个函数的开头运行一次。我希望这能帮到你。
不幸的是,在google script中没有像delay()这样的命令。
https://stackoverflow.com/questions/47172381
复制相似问题