我正在尝试使用脚本编辑器在我的谷歌电子表格中创建自定义函数。
我似乎不能允许用户给函数一个数组作为参数。
当我像这样硬编码时,我的脚本可以工作:
var values = SpreadsheetApp.getActiveSheet().getRange("G2:j30").getValues();
我想做的是将数组作为参数传递:
function arrayToList(chosenArray) {
...
var values = SpreadsheetApp.getActiveSheet().getRange(chosenArray).getValues();
...
}
有两种方法可以将数组作为参数传递给 Google 表格自定义函数
- 通过使用范围引用,如
A1:D5
.用法:=myCustomFunction(A1:D5)
。 - 通过使用谷歌表格数组表示法,如
{1,2;"Yellow","Orange"}
.用法:=myCustomFunction({1,2;"Yellow","Orange"})
。注意:如果您的电子表格设置为使用逗号作为小数分隔符,请使用/
作为列分隔符
引用
- https://developers.google.com/apps-script/guides/sheets/functions
- 在 Google 表格中使用数组
现在此功能
未在 GAS 中实现。SO中也有类似的问题(这里和这里)。您可以将功能请求发布到问题跟踪器。
Riku - 你试过将你的函数称为arrayToList(G2:j30)吗?我相信应用程序脚本会将所选范围转换为逗号分隔的字符串(向左 -> 向右,然后自上而下>)。
它不会与 Range 对象相同,但至少您可以获得所选范围的 CSV 字符串表示形式,也许这就足够了?