如何定义特定的工作表-.getsheetbyname错误

时间:2019-03-25 12:52:56

标签: javascript google-apps-script google-sheets appscript

我只想为此代码定义一个特定的工作表:

function onEdit() {
var s = SpreadsheetApp.getActiveSheet();
var r = s.getActiveCell();
if( r.getColumn() == 3 && r.getValue() == '3')
var nextCell = r.offset(0, 1);
nextCell.setValue("1");  
}

我尝试过.getsheetbyname:

function onEdit() {
var s = 
SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Test");
var r = s.getActiveCell();
if( r.getColumn() == 3 && r.getValue() == '3')
var nextCell = r.offset(0, 1);
nextCell.setValue("1");

}

,但它仍适用于所有工作表。我觉得这与.getactivecell .getcolumn和.getvalue有关。我也需要指定这些表格在哪张纸上吗?如果是这样,怎么办?非常感谢!

1 个答案:

答案 0 :(得分:0)

使用事件对象检查当前工作表是否是您要尝试处理的工作表。将'required sheet name'更改为您所需的内容。

function onEdit(e) {
  var range = e.range;
  var name = range.getSheet().getName();
  // check if 'name' is OK
  // if OK, proceed
  // if NOT OK, return
  if (name != 'required sheet name') return;
  if (range.getColumn() == 3 && range.getValue() == '3') {
    var nextCell = range.offset(0, 1);
    nextCell.setValue('1');
  }
}