2015-07-16 2 views
0

Я был заинтересован в автоматизации проверки данных таблицы Google в отношении другой таблицы Google с использованием скриптов Google. Я не могу найти способ ссылки на диапазон другой таблицы, используя метод openById. Есть предположения?Проверка данных внешних таблиц Google Scripts

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()); 
 
}

ответ

0

Если я правильно понять вопрос вы имеете в выборе диапазона данных из внешней таблицы? Im, предполагающий dataValidationSheet должен быть внешним листом. Похоже, ты был на правильном пути. Похоже, проблема заключается в том, что вы ожидаете, что лист будет активным после его захвата. Попробуйте это изменение: В настоящее время вы захватываете внешний лист, но затем получаете диапазон от листа, который уже был активным. Надеюсь, это поможет!

+0

Благодарим вас за помощь! Да, вы правы, dataValidationSheet - это внешний лист. Я попытался удалить метод .getActiveSheet() из определения диапазона и кода, но он все еще ссылается на активный лист, а не на внешние значения листа для проверки данных. – gaparicio

+0

Я полностью пропустил большую фотографию, когда я ответил сегодня утром, у меня еще не было моей первой чашки кофе. Насколько я знаю, нет способа установить внешний диапазон в качестве правила проверки данных. Возможно, вы сможете найти работу, в зависимости от того, что именно вы пытаетесь выполнить. Например, если вы не хотите ссылаться на диапазон, данные которого не будут меняться, вы можете захватить значения и создать правило типа VALUE_IN_LIST. Если это надстройка, вы можете иметь этот список повторно при каждом открытии аддона, но, насколько мне известно, к сожалению, нет простого способа сделать это. –

Смежные вопросы