如果单元格已填充数据,则退出 Google 脚本

Exit Google Script if cell already populated with data

我有一个执行简单自动化的脚本。我需要检查数据是否已经存在,如果存在,只需退出整个函数,而不是继续设置值。我如何用这个脚本做到这一点?谢谢!

function onEdit() {
  var sheetName = "SUPPORT INFO";
  var s = SpreadsheetApp.getActiveSheet();
  if (s.getName() !== sheetName) return;
  var r = s.getActiveCell();
  if( r.getColumn() != 2 ) { //checks the column
    var row = r.getRow();
    var date = new Date();
    SpreadsheetApp.getActiveSheet().getRange('B' + row.toString()).setValue(date);
    SpreadsheetApp.getActiveSheet().getRange('A' + row.toString()).setValue("Closed");
    SpreadsheetApp.getActiveSheet().getRange('O' + row.toString()).setValue("TECH1");
  };
};

确定程序流程的逻辑应该是什么。如果您需要代码仅适用于一列,那么您可以排除所有其他内容。

排除所有其他列:

var theActiveRange = sheet.getActiveCell();

columnNumberToUse = X;

if ( theActiveRange.getColumn() !== columnNumberToUse) {return;}//quit if this column 
//is any column other than X

if (!theActiveRange.getValue()) {return;}

所以,使用这段代码,如果你给变量columnNumberToUse赋值2,那么当列号2时,代码会继续运行。所以,如果代码越过这些行:

columnNumberToUse = 2;

if ( theActiveRange.getColumn() !== columnNumberToUse) {return;}//quit if this column 
//number is not equal to the columnNumberToUse

//If the code gets to here - then you know the active range is column 2

你需要理解"not"运算符,这是一个感叹号。

var is_it_true = 1 !== 5;

数字 1 不等于 5,所以上面这行代码的变量 is_it_true

的值为 true

示例代码正在测试列号是否不等于2。