1 回答
TA贡献1816条经验 获得超6个赞
使用当前代码,在工作表循环内处理单个工作表后,数据验证将写入单元格 Main!C4。换句话说,数据验证被一次又一次地覆盖。需要的是合并数组中的值,然后将其写入 Main!C4。看看这是否有帮助。
function setDataValidation() {
var ss = SpreadsheetApp.getActive();
var values = allColsA(ss, 'Main', 'A2:A');
ss.getRange('Main!C4').setDataValidation(SpreadsheetApp.newDataValidation()
.requireValueInList(values));
}
编辑以包含一个带有排除表的数组...
function allColsA(spreadsheet, targetSheetName, range) {
var arr, excluded;
arr = [[]];
excluded = [targetSheetName, 'Sheet2', 'Sheet3'];
spreadsheet.getSheets().filter(sh => excluded.indexOf(sh.getName()) === -1)
.forEach((s, i) => {
arr = arr.concat(s.getRange(range)
.getValues())
})
return arr.filter(String).reduce((a, b) => a.concat(b), []);
}
添加回答
举报