强制importrange()以特定间隔更新

时间:2014-06-20 21:37:00

标签: google-sheets google-drive-api spreadsheet

我看到有几个人抱怨谷歌电子表格中通过importrange()更新数据的延迟,但我实际上需要相反的一面,并且不希望第二张表自动更新,只需在当天结束时更新例。 代码就像这样:

=IMPORTRANGE("The Key","The_Page!B:D")

2 个答案:

答案 0 :(得分:2)

也许您需要使用脚本编辑器并编写一个类似的简单函数:

function importData()
{

var ss = SpreadsheetApp.getActiveSpreadsheet(); //source ss

var sheet = ss.getSheetByName("The_Page");      //opens the sheet with your source data

var values = sheet.getRange("B:D").getValues();   //gets needed values

var ts = SpreadsheetApp.openById("The Key");    //target ss - paste your key

ts.getSheetByName("Name of the target sheet").getRange("B:D").setValues(values);

}

然后为此项目添加一个时间驱动的触发器(资源>当前项目的触发器>添加一个新的触发器。)

答案 1 :(得分:2)

我通过使用NOW单元格创建刷新循环在两个电子表格中解决了这个问题,两个电子表格相互交叉引用了NOW单元格。

当原始工作表附加表单提交或其他内容时,它会更新自己的NOW单元格,并重新更新自己的IMPORTRANGE单元格。第二个电子表格紧随其后,更新自己的NOW单元格,为原始工作表提供正确的数据。由于第二个电子表格已自行更新,因此它还会更新主IMPORTRANGE,它会刷新您希望首先显示的数据,以及获取IMPORTRANGE的{​​{1}}单元格。来自原始电子表格的单元格

至少,我非常确定它是如何运作的。我所知道的一切,坦率地说,我所关心的是它的作用