如何将范围传递给 Google 电子表格中的自定义函数?
Posted
技术标签:
【中文标题】如何将范围传递给 Google 电子表格中的自定义函数?【英文标题】:How to pass a range into a custom function in Google Spreadsheets? 【发布时间】:2016-07-28 15:39:54 【问题描述】:我正在尝试在预定义的范围内比较两个谷歌工作表(重复值)..
我知道 google 允许您通过工具比较工作表,但我需要更自定义的比较功能。
我想创建一个接受范围的函数...类似于:
function myFunction(range)
var firstColumn = range.getColumn();
// loop over the range
问题是当我尝试这样做时,参数似乎只是将值传递给函数。因此,我不能使用任何 Range 方法,例如 getColumn()。当我尝试这样做时,它会给出以下错误:
error: TypeError: Cannot find function getColumn in object 1,2,3.
如何向我的自定义函数之一发送实际范围而不仅仅是值?
注意-在我的例子中,范围是整个工作表(两者都需要比较)。
谢谢!
【问题讨论】:
【参考方案1】:Google 脚本将范围视为数组。因此,您可以在使用数组时更好地使用输入的范围。这是如何遍历数组的好技术: https://***.com/a/14991272/5372400
【讨论】:
【参考方案2】:自定义函数参数在传递给自定义函数的代码之前计算,因此range
将是单个值或值数组。
您可以将范围的引用作为字符串传递,即=myFunction("Sheet!A:Z")
,然后使用类似以下的内容:
注意:getRangeByName 可用于命名范围和引用操作系统,它可能是比 getRange 更好的选择。
【讨论】:
以上是关于如何将范围传递给 Google 电子表格中的自定义函数?的主要内容,如果未能解决你的问题,请参考以下文章
如何将数组传递到 Google 电子表格的 Google App 脚本中的查询字符串