Скрипт Google Sheet выполняется не полностью
Я использую 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)
Ответы
ОБНОВЛЕННЫЙ ОТВЕТ
Если у вас есть проблемы с запуском функции по триггеру, когда она работает должным образом без триггера, проверьте следующее:
Для тяжелых файлов / данных формы они могут задерживать заполнение листа новыми данными формы.
Чтобы избежать конфликтов, дайте электронной таблице некоторое время, чтобы заполнить новую строку, прежде чем
sheet.getLastRow()получать или получать доступ к данным в таблице .Вы можете легко расставить точки, например, с помощью Utilities.sleep () .
Убедитесь, что ваш триггер установлен правильно. Для этого проверьте, что
- тип триггера правильный
- триггер привязан к правильной функции
- избегайте конфликтов, создавая новый триггер при переименовании функции.
Убедитесь, что проблема не связана с ограничениями триггера
Это частый источник ошибок при использовании простых триггеров.
Убедитесь, что учетная запись, от имени которой запускается триггер, имеет разрешения на редактирование листа / диапазона. Это важно проверить, если владельцем триггера является не тот человек, который запускает скрипт вручную.
Обратите внимание, что
setFormula()нет необходимости включать=в формулуОбратите внимание, что
DATEVALUE()ожидаемый результат будет возвращен только в том случае, если ячейка правильно отформатирована как дата.