Правило проверки данных не работает с запросом (importrange в Google Sheets - PullRequest
0 голосов
/ 14 апреля 2020

Я импортирую данные из одной электронной таблицы в другую: моя формула =QUERY(IMPORTRANGE в C9. Все работает, кроме моего скрипта относительно правила проверки данных. Я хочу, чтобы флажок появлялся в столбце B при наличии данных в столбце C.

function createSpreadsheetOpenTrigger() {
   var ss = SpreadsheetApp.getActive();
   ScriptApp.newTrigger('onChange')
    .forSpreadsheet(ss)
    .onOpen()
    .create();

function onChange(event) {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var s = event.source.getActiveSheet();
  var r = event.source.getActiveRange();

 // When a PO number is filled in Col8 or H, generate the data validation for the row   
  var lastRow = s.getLastRow();
  var listRange1 = ss.getSheetByName('Settings').getRange('B3:B7'); // list range for Factor Status
  var listRange2 = ss.getSheetByName('Settings').getRange('C3:C8'); // list range for Payment Status
    if (s.getName() == "2019-2020" && r.getRow() == lastRow && r.getColumn() == 8){
    var rule = SpreadsheetApp.newDataValidation().requireCheckbox().build()
    s.getRange(lastRow,2).setDataValidation(rule); // rule to create the check box data validation in Col2 or B
    var rule1 = SpreadsheetApp.newDataValidation().requireValueInRange(listRange1).build()
    s.getRange(lastRow,17).setDataValidation(rule1); // rule to create drop down list for Factor Status in Col17
    var rule2 = SpreadsheetApp.newDataValidation().requireValueInRange(listRange2).build()
    s.getRange(lastRow,16).setDataValidation(rule2); // rule to create drop down list for Payment Status in Col16
  }
 }
}

Если я добавляю содержимое вручную в столбец C, скрипт работает , Но не работает для импортированных данных . У кого-нибудь есть идеи?

Спасибо за помощь!

1 Ответ

0 голосов
/ 15 апреля 2020

IMPORTRANGE не запускает onEdit, но срабатывает при onChange

  • onChange это устанавливаемый триггер
  • Переименуйте ваш привязать к нему триггер onChange
  • Эта функция должна запускаться при каждом обновлении импортированного диапазона
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...