【问题标题】:How do I use an array as argument for my custom function in Google Apps Script in a spreadsheet如何在电子表格的 Google Apps 脚本中使用数组作为自定义函数的参数
【发布时间】:2012-09-15 19:39:53
【问题描述】:

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

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

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

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

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

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

【问题讨论】:

  • 如何编写公式以使用自定义函数。你使用 =arrayToList("G2:j30") 还是 =arrayToList(G2:j30)
  • 其实我希望用户能够选择数组,这样 =arrayToList(G2:j30)
  • 所以在这种情况下,你的自定义函数就变成了function arrayToList(chosenArray) { var values = chosenArray; }
  • 这个问题可能会有所帮助:stackoverflow.com/questions/12206399/…

标签: javascript multidimensional-array google-apps-script google-sheets


【解决方案1】:

现在这个功能没有在 GAS 中实现。 SO中有类似的问题(herehere)。您可以向issue tracker 发布功能请求。

【讨论】:

【解决方案2】:

Riku - 您是否尝试将您的函数调用为 arrayToList(G2:j30)?我相信 Apps 脚本会将所选范围转换为逗号分隔的字符串(向左 -> 向右,然后从上到下)。

它不会与 Range 对象相同,但至少您可以获得所选范围的 CSV 字符串表示形式,也许这就足够了?

【讨论】:

    【解决方案3】:

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

    1. 通过使用范围引用,例如A1:D5。用法:=myCustomFunction(A1:D5)
    2. 使用 Google 表格数组表示法,如 {1,2;"Yellow","Orange"}。用法:=myCustomFunction({1,2;"Yellow","Orange"})。 注意:如果您的电子表格设置为使用逗号作为小数分隔符,请使用 / 作为列分隔符

    参考文献

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多