Простая функция `onEdit` не работает для Google Sheets - PullRequest
0 голосов
/ 16 марта 2020

У меня есть простая функция onEdit, которую я использую на других листах. У меня не было проблем при использовании этого в прошлом. В последнее время эта функция не работает.

function onEdit(e) {
  var sheet = e.range.getSheet();
  var name = sheet.getSheetName()
  
  Logger.log(name)
  
  if(e.range.getA1Notation() === "C3" && name == 'Main') {
    sheet.getRange("C4").clearContent()
  }
}

Я даже добавил вызов Logger.log(), чтобы проверить и убедиться, что я не безумен. Но нет, он не запустится.

Я даже пытался создать тестовый лист без дополнительного кода, чтобы помешать вызову onEdit ... без игры в кости.

Есть идеи? Я довольно потерян на этом.

Спасибо, Маркус

1 Ответ

3 голосов
/ 16 марта 2020

На основании размещенного вами скрипта функция будет применима только к листу с именем «Main» и будет влиять только на ячейку C4, если ячейка C3 редактируется.

Прежде всего, Logger.log не будет покажите что-нибудь, если скрипт не был инициирован из самого кода скрипта, поэтому проверить это будет невозможно. Поэтому я проверил, используя var ui = SpreadsheetApp.getUi () и создавая предупреждение . каждый раз, когда я вносил изменения.

Во-вторых, на основе этой проверки предоставленный вами скрипт действительно запустился. Следовательно, это оставляет 4 возможных источника ошибок. 1) лист, на котором вы выполняете редактирование, не называется «Главный». 2) ячейка, которую вы редактируете, не является ячейкой C3, 3) ячейка C4 пуста и нечего очищать 4) Вы не делали редактирование, т.е. изменение в C3 еще не было введено в ячейку, потому что у вас нет набрал ввод или выбрал место за пределами ячейки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...