Я написал скрипт приложения в GSheet для:
- Скопируйте последнюю строку листа формы Google в файле Google Sheet, если новая форма поступила (триггер) с помощью формы Google
- Вставить эту строку на другой лист в том же файле GSheet в последнюю строку
К сожалению, последняя строка листа формы копируется более одного раза на соответствующий лист. Иногда два раза, иногда четыре раза. Я не вижу свою ошибку в коде.
Пока не могу найти решение. Я включил паузу перед appendRow с Utilities.sleep (5000), но без эффекта.
function myFunction() {
// Source sheet: Form is the source sheet of the Google Form
var source =
SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Form");
// Get last row in Form
var lastrow = source.getLastRow();
// Get just the date of the Form input
var formdate = source.getRange(lastrow,7,1,7).getValue();
// Change month number to string (e.g. April)
var currentD2 = Utilities.formatDate(formdate,
Session.getScriptTimeZone(), "MMMMM");
// Identify target sheet in same Google sheet file
var target =
SpreadsheetApp.getActiveSpreadsheet().getSheetByName(currentD2);
// Identify the appropriate range of the last row of the Form sheet
// (source)
var sourceData = source.getRange(lastrow, 2,1,8).getValues();
// Append the last row of the Form sheet to the last row in the target
// sheet
target.appendRow(sourceData[0])
}
Я ожидаю, что функция копирует только один раз последнюю строку листа формы, а не несколько раз.