Google Scripts外部电子表格数据验证

时间:2015-07-16 21:36:17

标签: javascript google-apps-script validation

我有兴趣使用Google Scripts自动化Google电子表格与其他Google电子表格的数据验证。我似乎找不到使用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 个答案:

答案 0 :(得分:0)

如果我理解正确,您遇到的问题是从外部电子表格中选择数据范围? 我假设dataValidationSheet应该是外部工作表。看起来你走在了正确的轨道上。看起来问题是,一旦你抓住它,你期望工作表是活跃的。 试试这个改变: var range = sheet.getRange("A3:A4");
目前,您正在抓取外部工作​​表,但随后从已经处于活动状态的工作表中获取范围。希望这有帮助!