Google apps script 脚本编辑器接受的内容和Google Sheets接受的内容可能有所不同?

Google apps script 脚本编辑器接受的内容和Google Sheets接受的内容可能有所不同?,google-apps-script,google-sheets,custom-function,Google Apps Script,Google Sheets,Custom Function,所以我一直在尝试构建一个AADD(range,range)函数。这还不完整,所以别为此对我发火。目前困扰我的是,脚本编辑器在有意义的代码中所说的内容和Google Sheets将运行的内容似乎有所不同 首先,这是测试仪: function test_AADD() { var sheet = SpreadsheetApp.getActiveSheet(); var range1 = sheet.getRange("B2:E2"); var range2 = sheet.getRange

所以我一直在尝试构建一个AADD(range,range)函数。这还不完整,所以别为此对我发火。目前困扰我的是,脚本编辑器在有意义的代码中所说的内容和Google Sheets将运行的内容似乎有所不同

首先,这是测试仪:

function test_AADD() {
  var sheet = SpreadsheetApp.getActiveSheet();
  var range1 = sheet.getRange("B2:E2");
  var range2 = sheet.getRange("B3:D3");
  var result = AADD(range1, range2);
}
这些范围故意在长度上不匹配,因为我正在尝试解决如何发回标准错误消息,如“#error!”(那里的一些帮助也会有帮助)

这是公共AADD函数。我希望有一天能发现如何将函数私有化(另一件事我需要帮助)

实现AADD代码的(最终)私有函数是

这就是函数在这一点上的作用,因为我只是想知道如何测试一个没有其他项目那么多的范围

现在我们来讨论主要问题:当我有脚本时,脚本编辑器不会抱怨对传入的范围变量range1和range2的方法调用。当我在脚本编辑器中运行test_AADD函数时,我得到了一个非常合理的响应(除了“新错误”没有实际返回之外——还有一些我需要帮助的东西)

然后我回到我的谷歌表单文件。在我键入的单元格中

=AADD(B2:D2,B3:D3)
现在,这甚至不会触发“新错误”位,因为范围大小相同。即便如此,我还是得到了一个“#错误!”如果我用鼠标悬停在它上面,我会得到这个错误

TypeError: Cannot find function getNumRows in object 1,2,3 (line 73) 
其中1,2,3是B2:D2中的内容,第73行是脚本文件中的位置


那么,为什么脚本编辑器和Google Sheets不能就允许的内容达成一致?

从Google Sheets调用脚本函数(即“自定义函数”)只将值数组作为参数传递。非
范围
类对象。此外,错误是
throw
n,而不是
return
ed@bugmagnet检查应用程序脚本。有一个专门用于使用函数构建自定义图纸公式的工具。这是一个相对简单的阅读方法,应该有助于解决大多数问题。从Google Sheets调用脚本函数(即“自定义函数”)只将值数组作为参数传递。非
范围
类对象。此外,错误是
throw
n,而不是
return
ed@bugmagnet检查应用程序脚本。有一个专门用于使用函数构建自定义图纸公式的工具。这本书相对容易阅读,应该有助于解决您的大多数问题。
=AADD(B2:D2,B3:D3)
TypeError: Cannot find function getNumRows in object 1,2,3 (line 73)