如何使用数组作为电子表格中 Google Apps 脚本中的自定义函数的参数



我正在尝试使用脚本编辑器在我的谷歌电子表格中创建自定义函数。

我似乎不能允许用户给函数一个数组作为参数。

当我像这样硬编码时,我的脚本可以工作:

    var values = SpreadsheetApp.getActiveSheet().getRange("G2:j30").getValues();

我想做的是将数组作为参数传递:

   function arrayToList(chosenArray) {
        ...
        var values = SpreadsheetApp.getActiveSheet().getRange(chosenArray).getValues();
        ...
   }

有两种方法可以将数组作为参数传递给 Google 表格自定义函数

  1. 通过使用范围引用,如 A1:D5 .用法:=myCustomFunction(A1:D5)
  2. 通过使用谷歌表格数组表示法,如{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 字符串表示形式,也许这就足够了?

最新更新