我有一些具有数据验证规则的工作表可用作下拉列表。
当尝试将其他(未经验证的)数据插入这些单元格时,我的代码现在会产生错误。
我正在寻找一种方法来忽略数据验证规则并插入数据而不更改已设置的数据验证规则。我只想忽略应用程序脚本错误。
您在单元格 U440 中输入的数据违反了在此单元格上设置的数据有效性规则。
代码错误所在的行没有数据验证问题,因此我不完全确定如何处理错误。
function CountCol(ss, col){var vals = ss.getRange(col+'1:'+col).getValues();var last = vals.filter(String).length;return last+1;}
此函数返回已声明列的第一个空行的行号。不确定这如何违反数据验证规则,因为在我的代码中我正在计算列“C”,数据验证位于列“O”、“P”、“Q”、“U”和“V”以及验证错误列是“U”。
var row_data = [[""], [""]]; //example data
var team = "12345645647abcdef"; //example spreadsheet id
var sn = "Sheet1"; //example sheet name
var caseload = SpreadsheetApp.openById(team).getSheetByName(sn);
var append = CountCol(caseload, "C");
Logger.log("adding to row: "+String(append));
try{
caseload.getRange(append, 1, 1, row_data[0].length).setValues(row_data); //this is where the error should be. The output manages to write most colums but stops before writing column 'U'.
}catch(e){
Browser.msgBox(e);
Logger.log("failed to append: "+String(append)+ ":" + String(row_data[0][0]) + ": " + String(row_data[0][1]));
}
caseload.getRange(append, 1, 1, row_data[0].length).setBackground("red");