【问题标题】:Is there a way to iterate a formula across cells in a multiple selection - Google sheet有没有办法在多项选择中跨单元格迭代公式 - Google 工作表
【发布时间】:2021-02-02 15:34:51
【问题描述】:

在 google sheet 中,这个简单的脚本用于选择单个单元格,然后单击按钮将所选单元格中的值减 1:

function tally() {
 
  var cell = SpreadsheetApp.getActiveSheet().getActiveCell();
  var value = cell.getValue();
  cell.setValue(value-1);
}

有没有办法进行多选 - 即在表格中选择多个/分散的单元格,然后在每个选定的单元格中迭代函数?

【问题讨论】:

    标签: javascript arrays loops google-apps-script google-sheets


    【解决方案1】:

    解释:

    • 您可以使用getActiveRange 并假设您有一个 2D 数组,您可以使用 double map 从每个单元格中减去一个。
    • 然后set将所有值返回到工作表。

    解决办法:

    function tally() {
      const rng = SpreadsheetApp.getActiveSheet().getActiveRange();
      const values = rng.getValues().map(r=>r.map(c=>c-1));
      rng.setValues(values);
    }
    

    【讨论】:

    • 工作一次 - 然后只处理最后一个选定的单元格。 (?)
    • @JohnDickey 不幸的是,我无法重现您的问题。您需要用鼠标选择单元格(直到它们周围有蓝色边框)并然后运行脚本。您能否提供有关如何执行该功能的更多详细信息?
    • 我选择一个单元格,然后运行脚本,然后重复 - 但我希望能够对分散的单个单元格进行多项选择,然后运行脚本一次。仅当我选择相邻的单元格时,您的脚本才适用于多个单元格,而我很少这样做。我想我不了解可能有助于对多个分散选择进行操作的其他可能性(getActiveRangeList?)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-24
    • 1970-01-01
    • 2010-09-19
    • 1970-01-01
    • 2019-06-30
    • 2022-01-05
    相关资源
    最近更新 更多