【问题标题】:Google Sheets Script Parameter for e.g. Button谷歌表格脚本参数,例如按钮
【发布时间】:2016-03-16 13:56:42
【问题描述】:

是否可以在签名脚本上传递参数?

我有一个电子表格,并为每个电子表格制作了几个按钮签名功能。

示例函数:

function foo(){
    return "bar";
}

在单元格上调用此函数

=foo()

返回我bar,将此函数签名到一个按钮

foo

什么也没给我,但它当然有效。我的意思是脚本不能将字符串返回到图像(实际上是我的按钮)。总之……

带参数的示例函数:

function foo(bar){
    return bar;
}

在单元格中调用脚本

=foo('hello world')

按预期返回hello world

在我的按钮上签名

foo('hello world') 

导致错误,因为按钮找不到脚本。他正在寻找函数名称foo('hello world'),但(...) 与函数无关。

那么在签署脚本时如何传递参数?

目前我有 26 个函数(都一样,只有 1 个参数更改)来解决这个问题。但是通过传递一个参数,我可以用 2 个函数而不是 26 个函数来完成所有这些工作。

【问题讨论】:

    标签: excel google-sheets spreadsheet google-spreadsheet-api


    【解决方案1】:

    在使用自定义函数时,您不能通过将其分配给可绘制图像来传递参数。它仅在从单元格调用自定义函数时才有效。 可能的解决方法是将参数存储在某些工作表和单元格上,然后通过 getRange()getDisplayedValue()

    其他可能的解决方法已发布在 Google 产品帮助论坛中,该论坛可以在 here 找到

    【讨论】:

      【解决方案2】:

      我找到了为每个单独的按钮创建单独的帮助方法的最佳选择,然后将正确的参数传递给通用方法。

      在下面的示例中,您将绑定到城市特定方法的按钮,例如“赫尔辛基”按钮“updateAvailabilityInfoHelsinki”。

      function updateAvailabilityInfoHelsinki() {
        updateAvailabilityInfo("Helsinki");
      }
      
      function updateAvailabilityInfoPorvoo() {
        updateAvailabilityInfo("Porvoo");
      }
      
      function updateAvailabilityInfo(citySheet) {
          // Do something with citySheet parameter
      }
      

      【讨论】:

      • 很高兴看到这解决了您的问题,或者至少是您的解决方案。对我来说,这不是一个解决方案,因为每个按钮都有自己的功能。这减少了代码,也是我做的一些,但最终我习惯了函数的其他行为以及我所解释的内容
      猜你喜欢
      • 1970-01-01
      • 2022-10-17
      • 1970-01-01
      • 2021-11-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多