首页 > 解决方案 > 以我只能向它们添加 +1 的方式保护单元格

问题描述

我有一堆带有数字的单元格。我希望他们以我只能向他们添加 +1 的方式保护他们。现在我手动执行此操作(4 变为 5 等等)。

假设 Google 电子表格没有漂亮的向上/向下箭头来表示单元格增加/减少 +1 / -1,我想我应该使用脚本。

像这样的东西

function increment() {  SpreadsheetApp.getActiveSheet().getRange("F5").setValue(SpreadsheetApp.getActiveSheet().getRange("F5").getValue() + 1);
}

但是如果我使用这个脚本(创建大量图纸(grrr)),我应该创建 x 相同的功能吗?好像有点傻

这给了我错误

function increment(mycell) {  SpreadsheetApp.getActiveSheet().getRange(mycell).setValue(SpreadsheetApp.getActiveSheet().getRange(mycell).getValue() + 1);
}

用法:增量(F5)
错误:找不到函数增量(F5)。

?

标签: google-apps-scriptgoogle-sheetsgoogle-sheets-formulacustom-function

解决方案


关于您的方法的问题是递归

默认情况下会重新计算工作表公式,因此如果您在一个单元格中键入一个公式,该公式会使另一个单元格中1的值增加 - 一旦值增加,这将触发公式重新计算并请求再次增加值等等。

所以你不能以这种方式实现你的想法

解决方法

  • 创建一个增加当前单元格值的函数
  • 您将此功能绑定到一个按钮,并在单击所需的单元格并单击按钮后触发执行

示例功能:

function increment() {  
  SpreadsheetApp.getActiveSheet().getCurrentCell().setValue(SpreadsheetApp.getActiveSheet().getCurrentCell().getValue() + 1);
}

要创建一个按钮:

  • 从表格 UI 转到Insert->Drawing
  • 绘制您选择的形状并单击Save and close
  • 单击绘图右上角的三个垂直点
  • 选择Assign script 在此处输入图像描述
  • 输入函数的名称(不带()
  • 单击要增加其值的单元格
  • 单击您的绘图以运行脚本 - 完成!

在此处输入图像描述


推荐阅读