Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google apps script 触发函数与导入_Google Apps Script_Google Sheets_Triggers_Importrange - Fatal编程技术网

Google apps script 触发函数与导入

Google apps script 触发函数与导入,google-apps-script,google-sheets,triggers,importrange,Google Apps Script,Google Sheets,Triggers,Importrange,我有一个GoogleApps脚本,它将以Google表单提交的信息与使用IMPORTRANGE功能带入Google电子表格的信息进行比较。如果我手动运行该脚本,则该脚本工作正常,但如果它从表单提交触发器运行,则会报告它没有使用IMPORTRANGE从单元格中获取正确的信息 有没有办法解决这个问题,比如我可以添加一个快速函数来强制更新导入范围 我已经尝试添加长达10分钟的等待时间,但结果没有改变。问题在于像importRange这样的函数是如何工作的。实际上,它们需要与使用它们登录的用户帐户相同的

我有一个GoogleApps脚本,它将以Google表单提交的信息与使用IMPORTRANGE功能带入Google电子表格的信息进行比较。如果我手动运行该脚本,则该脚本工作正常,但如果它从表单提交触发器运行,则会报告它没有使用IMPORTRANGE从单元格中获取正确的信息

有没有办法解决这个问题,比如我可以添加一个快速函数来强制更新导入范围


我已经尝试添加长达10分钟的等待时间,但结果没有改变。

问题在于像
importRange
这样的函数是如何工作的。实际上,它们需要与使用它们登录的用户帐户相同的访问/权限,以避免安全漏洞(想象一下,您拥有的电子表格编辑器正在访问您没有与他们共享的其他电子表格)

正因为如此(好吧,至少我是这么认为的),这些公式只有在打开电子表格时才会进行计算。当您关闭它并让脚本在触发器上运行时,它将在预期的单元格上找不到任何结果

一个简单的解决方法是使用脚本本身获取数据,然后使用
importRange
退出。这很容易做

var values=SpreadsheetApp.openById('external-spreadsheet-key')。
getSheetByName('Sheet1').getRange('A1:D100').getValues();
SpreadsheetApp.getActive().getSheetByName('DestSheet')。
getRange(1,1,values.length,values[0].length).setValues(values);

显然,电子表格键、工作表名称和范围只是一个例子。

这只是一个提示,因为您是StackOverflow新手,当您觉得得到了一个好答案时,应该将答案标记为已接受。投票(上下)也是我们这里的另一个好功能。这不是邮件列表;)