如何使用ImportRange刷新脚本?

时间:2018-11-07 04:54:24

标签: google-apps-script

我不知道脚本。

我找到了一种比ImportRange更快地引用外部图纸的方法,但是我不知道如何使用此脚本。

我可以举个使用此脚本的示例吗?

我需要帮助。


 // this function creates a menu item on the top that you can click the refresh the data, you could also use triggers to refresh
function onOpen() {
  var spreadsheet = SpreadsheetApp.getActive();
  var menuItems = [{name: 'Refresh', functionName: 'getData'}];
  spreadsheet.addMenu('Menu', menuItems);
}
function getData() {
  var key = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet1").getRange("A1").getValue(); // you would place the spreadsheet key in A1, alternatively you can enter the key directly here rather than referencing
  var sourceSs = SpreadsheetApp.openById(key);
  var sourceSheet = sourceSs.getSheetByName("Sheet1");
  var sourceRange = sourceSheet.getRange("A1:C");
  var sourceValues = sourceRange.getValues(); 
  var destSs = SpreadsheetApp.getActiveSpreadsheet();
  var destSheet = destSs.getSheetByName("Sheet1");
  var desRange = destSheet.getRange("A1:C")
  destRange.setValues(sourceValues);
}

对不起。我的英语似乎不太流利,因为我的英语似乎不太合适。 我必须去StackOverFlow是因为韩国的GAS用户很少。

//最初,我的水平知道如何使用电子表格的大多数功能(脚本除外)。

根据我的经验,我已经有超过100,000行,在拆分工作表后,我使用了IMPORTRANGE函数将结果收集到一个电子表格中。

但是,此电子表格具有大量的实时更新,因此我们必须找到一种加快速度的方法。

之后,我找到了上面的源代码并将其保存。但是,destRange.setValues(sourceValues)发生了错误;在底部。

我试图修改源代码,但是结果是相同的。

我认为您可以在实际应用的示例中看到如何使用源代码。

1 个答案:

答案 0 :(得分:0)

您需要做一些事情,不是很难,而是要具体: 1)获取源和目标电子表格的密钥。这些是打开工作表的URL中的长长的粗俗字符串。如果您看到这样的URL:https://docs.google.com/spreadsheets/d/1fPvp5o2-xeH04STyeaoC_iJTy1JRGQZki3_j1l39wMQ/edit#gid=0,则工作表ID是电子表格/ d /之后和/ edit之前的部分。将这些键放在sourceSs和destSs的代码中。

打开目标表。从菜单中选择工具->脚本编辑器。假设到目前为止您什么都没做,您将获得默认的“ MyFunction()”。清除该文本,然后复制/粘贴您的代码(包括密钥)。保存代码。关闭代码窗口,关闭电子表格,然后重新打开目标电子表格。

要实际更新目标电子表格上的值,将要求用户选择菜单项“刷新”。第一次,将要求用户授权该脚本的权限。

尝试一下。一旦知道了方法,就非常简单了。