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



我对使用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());
}

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

最新更新