问题描述
我对使用Google脚本针对另一个Google Spreadsheet自动对一个Google Spreadsheet进行数据验证进行了研究。
我似乎找不到使用openById
方法引用另一个电子表格范围的方法。
有什么想法吗?
function externalSheetDataValidation() { var cell = SpreadsheetApp.getActiveRange(); //var dataValidationSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("dataValidationRules"); //var dataValidationSheet = SpreadsheetApp.openByUrl("https://docs.google.com/spreadsheets/d/10Z2s1bSRIhZzBBrMfPmhEphnPx-kJdV3LLlbv0L59g8/edit#gid=0"); var dataValidationSheet = SpreadsheetApp.openById("10Z2s1bSRIhZzBBrMfPmhEphnPx-kJdV3LLlbv0L59g8"); var sheet = dataValidationSheet.getSheets()[0]; var range = SpreadsheetApp.getActiveSheet().getRange("A3:A4"); var rule = SpreadsheetApp.newDataValidation() .requireValueInRange(range, true) .setAllowInvalid(false) .build(); cell.setDataValidation(rule); Logger.log(dataValidationSheet.getName()); }
1楼
如果我理解正确,那么您遇到的问题是从外部电子表格中选择数据范围?
我假设dataValidationSheet应该是外部工作表。
看来您在正确的轨道上。
看来问题在于,您希望工作表一旦被抓住就可以被激活。
尝试以下更改: var range = sheet.getRange("A3:A4");
当前,您正在抓取外部工作??表,但是从已经处于活动状态的工作表中获取范围。
希望这会有所帮助!