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), []);
}
添加回答
舉報