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_Google Sheets Custom Function - Fatal编程技术网

Google apps script 如何在打开工作表时不执行功能?

Google apps script 如何在打开工作表时不执行功能?,google-apps-script,google-sheets,triggers,google-sheets-custom-function,Google Apps Script,Google Sheets,Triggers,Google Sheets Custom Function,我在谷歌表单上做了一个函数,请求一个外部链接。我将该函数称为: =functionimade(params) 但是,我总是打开工作表,调用函数并提出请求。我怎样才能解决它?我想提出一次请求回答: 不幸的是,这是不可能做到的 更多信息: 当在工作表中调用自定义函数时,单元格的值表示函数的返回-调用它的是公式。每次打开工作表时都会计算函数的返回值,因为唯一保存的是公式;不是数据 此外,根据,自定义函数不支持电子表格应用程序的.set*()方法: 电子表格服务:只读(可以使用大多数get*()方法,

我在谷歌表单上做了一个函数,请求一个外部链接。我将该函数称为:

=functionimade(params)
但是,我总是打开工作表,调用函数并提出请求。我怎样才能解决它?我想提出一次请求

回答: 不幸的是,这是不可能做到的

更多信息: 当在工作表中调用自定义函数时,单元格的值表示函数的返回-调用它的是公式。每次打开工作表时都会计算函数的返回值,因为唯一保存的是公式;不是数据

此外,根据,自定义函数不支持
电子表格应用程序的
.set*()
方法:

电子表格服务:只读(可以使用大多数get*()方法,但不能使用set*())

这意味着不可能直接使用
.getRange(cell).setValue(functionimade(params))
设置单元格的值,因为自定义函数的作用域不允许直接设置它

解决方法: 在函数结束时,您可以使用前面提到的
.setValue()
方法设置内容,而不是返回值,只需在函数本身中指定单元格:

函数functionimade(参数){
var myReturnValue=//这里有一些很酷的代码

var cell='A1';//读取:如果我尝试设置插入公式的单元格的值,它会说我不能,因为“循环依赖”。如果我试图设置其他单元格的值,它会说我没有权限这样做。你根本不能使用公式,工作表不允许这样做。你不需要在解决方法中使用公式,而不管你想设置哪个单元格的值,都可以将它的A1符号作为字符串指定给
单元格
。谢谢,它可以工作。有没有办法执行脚本而不转到工具>脚本编辑器?这是一种不想看到代码(如按钮)的用户的方法,请在我的答案末尾查看链接相关问题的答案-它解释了如何将脚本分配给工作表中的按钮。非常感谢