Нежелательные записи / копии нескольких строк (форма Google -> файл Google Sheet, лист1 -> файл Google Sheet, лист 2) - PullRequest
0 голосов
/ 07 апреля 2019

Я написал скрипт приложения в GSheet для:

  1. Скопируйте последнюю строку листа формы Google в файле Google Sheet, если новая форма поступила (триггер) с помощью формы Google
  2. Вставить эту строку на другой лист в том же файле 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])
}

Я ожидаю, что функция копирует только один раз последнюю строку листа формы, а не несколько раз.

...