如果单元格已填充数据,则退出 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。
我有一个执行简单自动化的脚本。我需要检查数据是否已经存在,如果存在,只需退出整个函数,而不是继续设置值。我如何用这个脚本做到这一点?谢谢!
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
示例代码正在测试列号是否不等于2。