仅当工作表“ Daily #s WK1”中的单元格c2更改时,如何运行Google脚本

问题描述

我需要一个脚本,该脚本仅在更改“ Daily #s WK1”工作表中的单元格c2时才能运行,这是我打开并关闭单元格的代码

 function onChange() {

  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheetByName("Daily #s WK1");
  var currentRange = ss.getRangeByName("NamedRange1");
  var rangeStart = currentRange.getRow();
  var values = currentRange.getValues();
var index = 0,rows = 1;
  var show = !(values[0][40] == "" );
for (var i = 1,length = values.length; i < length; i++) {
if (values[i][0] == 1 ) {
if (show) {
 sheet.showRows(rangeStart + index,rows);
 show = false;
index = i;
rows = 1;
} else
rows++;
} else {
if (show)
 rows++;
else {
sheet.hideRows(rangeStart + index,rows);
show = true;
index = i;
rows = 1;
}

解决方法

答案

您必须利用函数处理的事件来检查当前已编辑的单元格。按照Apps Script Documentation所说:

当用户更改电子表格中任何单元格的值时,onEdit(e)触发器将自动运行。大多数onEdit(e)触发器使用事件对象中的信息进行适当的响应。

我建议您使用以下代码。

记住:

代码

function onEdit(e) {

  if (e.range.getA1Notation() === "C2" &&  e.source.getActiveSheet().getName() === "Daily #s WK1") {
    // Your code
  }
}

参考

Apps Script: Simple Triggers