【问题标题】:Update script cell references when columns are moved移动列时更新脚本单元格引用
【发布时间】:2015-04-07 16:41:31
【问题描述】:

我们正在将大量业务逻辑迁移到幕后脚本,但我担心当列移动时它们会变得更加脆弱。

在工作表上自动更新

例如,如果我在电子表格中有这样的公式:

=If(A1=5,"Yes","No")

然后我在 A 的左侧插入 1 列,公式将自动更新如下:

=If(B1=5,"Yes","No")

应用脚本不更新

例如,如果我在脚本部分有公式:

function myFunction() {
   var value = SpreadsheetApp.getActiveSheet().getRange("A1").getValue();
   var output = (value == 5) ? 'Yes' : 'No';
   Logger.log(output);
}

工作表更改时不会更新。

:我怎样才能在后面的代码中为可能移动的列获得稳定的引用?

【问题讨论】:

    标签: google-apps-script google-spreadsheet-api


    【解决方案1】:

    这是在代码中硬编码字符串或数字时的普遍问题。

    一般来说,javascript 解析器无法判断哪些字符串可能用于工作表函数调用。有时解决起来并不容易。

    两种方法是:

    1. 如果事先知道列/单元格/范围,请使用命名范围: Define a named range 并使用 NamedRange in code。使用范围直接写入或查询其行/列位置。
    2. 另一个像您这样的基于列的范围是您的代码通过使用列标题作为列名手动进行此命名。代码使用这些名称并读取标头来构建映射。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-09
      • 2023-02-25
      • 1970-01-01
      • 1970-01-01
      • 2021-10-20
      • 2018-08-08
      相关资源
      最近更新 更多