Nat*_*han 3 google-sheets google-apps-script
我在单元格中有两个组合框,由工作表中的范围填充.当第一个更改时,我构建一个URL并调用:
var resp = UrlFetchApp.fetch(url, {"method": "get","muteHttpExceptions":false});
Run Code Online (Sandbox Code Playgroud)
它填充了控制第二个组合框的第二个范围.这在调试模式下工作得很好.但我的目标是使用该onEdit
模式.如果更改了第一个组合框,则该方法将运行并填充第二个组合框.使用此声明:
mydoc.getActiveSheet().getRange(15, 1).setValue("Some debug message");
Run Code Online (Sandbox Code Playgroud)
我把它放在整个方法中,看它死了.我在一个UrlFetchApp.fetch()
永不写入的方法后面有一个声明,所以我知道这就是问题所在.您可以在活动期间进行这些类型的通话吗?
同样,它可以通过脚本编辑器手动运行它,但是从调用时不能onEdit
.
我看到这个问题他们不允许它,但是线程中的最后一条评论说他通过将另一个自定义方法附加到onEdit来实现它.我URLFetchApp
从另一个方法调用,但我尝试创建一个myOnEdit函数,并URLFetchApp
从那里调用,但它仍然失败.不确定手动附加到活动的意思是什么......
wch*_*ito 14
使用简单的触发器:
function onEdit(e) {
var response = UrlFetchApp.fetch('http://www.google.com/');
Logger.log(response.getContentText());
}
Run Code Online (Sandbox Code Playgroud)
我收到以下错误(查看 - >执行记录):
Execution failed: You do not have permission to call fetch (line 2, file "Code") [0.008 seconds total runtime]
Run Code Online (Sandbox Code Playgroud)
一种可能的解决方法是创建可安装的触发器:
function myOnEdit(e) {
var response = UrlFetchApp.fetch('http://www.google.com/');
Logger.log(response.getContentText());
}
/*
In the Spreadsheet, create new trigger:
Run: myOnEdit
Events: From spreadsheet
On edit
*/
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3198 次 |
最近记录: |