我有一个包含脚本的电子表格,该脚本可以检查另一个电子表格中的客户名称,并返回关联的客户代码。只要客户名称在它引用的“ CustomerCodes”表中,它就可以很好地工作。如果那里不存在客户名称,我希望将变量值“ customerCode”设置为“找不到匹配项”。现在,它只会引发错误,不会再运行该脚本。这是代码:
var customerName = sheet.getRange('I2').getValue();
var ccsheet = ss.getSheetByName("CustomerCodes");
var lastRow = ccsheet.getLastRow();
Logger.log("lastRow: " + lastRow);
var lookUp = ccsheet.getRange(2, 1, lastRow, 3).getValues();
for (nn=0; nn<lookUp.length; ++nn) {
if (lookUp[nn][0] == customerName) {break}
}
//This is where I am having the trouble
var customerCode = lookUp[nn][1];
Logger.log("customerCode: " + customerCode);
因此,如果“ for”循环确实找到匹配项,则会将“ customerCode”变量设置为该匹配项。如果找不到匹配项,我希望将“ customerCode”变量设置为“找不到匹配项”,以便用户知道为什么未返回客户代码。变量“ customerCode”的值稍后在函数中返回给用户。
我对错误处理的理解不是很好,因为我对这一切真的很陌生,而且我找不到任何说明得很好的Google Apps脚本文档。非常感谢您的帮助!
最佳答案
对于信息,实际上有很多方法可以得到您想要的结果。一种更简单易读的方法如下:
var customerCode = 'no customer with this ID found in the list';
for (var nn=0; nn<lookUp.length; ++nn) {
if (lookUp[nn][0] == customerName) {
customerCode = lookUp[nn][1];
break;
}
}
当然返回的结果相同,但是避免使用上面使用的简短形式
IF THEN ELSE
语句(又名三元运算符)。