Скрипт Google Sheet выполняется не полностью

Aug 27 2020

Я использую Google Form для запуска этого скрипта.
Когда я запускаю скрипт с помощью кнопки Play, он работает отлично.
Когда я позволяю триггеру onsubmit запускать его, флажок заполняется нормально, а дата setValue - нет.
Я тоже пробовал пользоваться, setFormulaно результат тот же.

function AddCheckBox_toSchoolLunchForm(F) {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Form Responses 1")
  var criteria = SpreadsheetApp.DataValidationCriteria.CHECKBOX;
  var rule = SpreadsheetApp.newDataValidation().requireCheckbox().build();
  var range = sheet.getRange(sheet.getLastRow(), 8);
  range.clearContent();
  range.setDataValidation(rule);
  var FormulaCell = sheet.getRange(sheet.getLastRow(), 10);
  FormulaCell.setFormula("=DATEVALUE(A" + (sheet.getLastRow()) + ")");
}

Конечная цель состоит в том, чтобы столбец J заполнялся датой в формате кадра из столбца A каждый раз при отправке формы.
Мне нужен этот формат, чтобы запустить countIfs на другом листе.

Другой вариант - как-то встроить тег формата в эту команду CountIfs, чтобы они совпадали.

=COUNTIFS('Form Responses 1'!J:J,A2,'Form Responses 1'!D:D,B2)

Ответы

ziganotschka Aug 27 2020 at 21:25

ОБНОВЛЕННЫЙ ОТВЕТ

Если у вас есть проблемы с запуском функции по триггеру, когда она работает должным образом без триггера, проверьте следующее:

  • Для тяжелых файлов / данных формы они могут задерживать заполнение листа новыми данными формы.

    • Чтобы избежать конфликтов, дайте электронной таблице некоторое время, чтобы заполнить новую строку, прежде чем sheet.getLastRow()получать или получать доступ к данным в таблице .

    • Вы можете легко расставить точки, например, с помощью Utilities.sleep () .

  • Убедитесь, что ваш триггер установлен правильно. Для этого проверьте, что

    • тип триггера правильный
    • триггер привязан к правильной функции
    • избегайте конфликтов, создавая новый триггер при переименовании функции.
  • Убедитесь, что проблема не связана с ограничениями триггера

  • Это частый источник ошибок при использовании простых триггеров.

  • Убедитесь, что учетная запись, от имени которой запускается триггер, имеет разрешения на редактирование листа / диапазона. Это важно проверить, если владельцем триггера является не тот человек, который запускает скрипт вручную.

  • Обратите внимание, что setFormula()нет необходимости включать =в формулу

  • Обратите внимание, что DATEVALUE()ожидаемый результат будет возвращен только в том случае, если ячейка правильно отформатирована как дата.