您能帮忙获取代码的dataValidation部分吗?代码的所有其他部分都在工作,不幸的是只有dataValidation部分不起作用。
以下是代码: //“Ready Line”格式化第J列中的单词
if (r.getColumn() == 10 && e.value == "A Ready Line") {
sheet.getRange(r.getRow(),r.getColumn()).setBackgroundColor("#FFFF00");
sheet.getRange(r.getRow(),r.getColumn()).setFontColor("#38761d");
var rule = SpreadsheetApp.newDataValidation().requireValueInRange(['B Hold', 'C Confirm']).build();
sheet.getRange(r.getRow(),r.getColumn()).setDataValidation(rule);
// Timestamp column CG
sheet.getRange(r.getRow(),r.getColumn()+75).setValue(new Date());
// Clear columns MtoAA,
sheet.getRange(r.getRow(),r.getColumn()+3,1,15).clearContent();
}
答案 0 :(得分:1)
您应该使用requireValueInList而不是requireValueInRange:
var rule = SpreadsheetApp.newDataValidation().requireValueInList(['B Hold', 'C Confirm']).build();
也折旧了setBackgroundColor。您也可以使用以下方法简化代码:
var rule = SpreadsheetApp.newDataValidation().requireValueInList(['B Hold', 'C Confirm']).build();
sheet.getRange(r.getRow(),r.getColumn())
.setBackground("#FFFF00")
.setFontColor("#38761d")
.setDataValidation(rule);