Поскольку у вас уже есть записей , хранящихся в вашей электронной таблице, вам нужно просто запустить этот фрагмент один раз, чтобы скопировать уже сохраненные значения на их место. Это работает, собирая все данные, требуемые из листа Form Responses
, используя метод getRange(row, col, numrows, numcols)
, а затем вставляя значения, используя метод setValues()
.
function copyStuff() {
var spreadsheet = SpreadsheetApp.openById("ID_OF_YOUR_SPREADSHEET");
var allLeads = spreadsheet.getSheetByName("All Leads");
var formSub = spreadsheet.getSheetByName("Form Responses");
var valsFromForm = formSub.getRange(3, 1, 53, 13).getValues();
allLeads.getRange(2, 1, 53, 13).setValues(valsFromForm);
}
После этого вы должны заменить вышеуказанное фрагмент с этим:
function onFormSubmit() {
var spreadsheet = SpreadsheetApp.openById("ID_OF_YOUR_SPREADSHEET");
var allLeads = spreadsheet.getSheetByName("All Leads");
var formSub = spreadsheet.getSheetByName("Form Responses");
var openSheet = spreadsheet.getSheetByName("Open Leads");
var closedSheet = spreadsheet.getSheetByName("Closed");
var lostSheet = spreadsheet.getSheetByName("Lost");
var lastVals = formSub.getRange(formSub.getLastRow(), 1, 1, 13).getValues();
allLeads.getRange(allLeads.getLastRow(), 1, 1, 13).setValues(lastVals);
var cellValue = spreadsheet.getSheetByName("THE_NAME_OF_YOUR_SHEET_WHERE_CELL_VALUE_IS").getValue();
if (cellValue == "OPEN")
openSheet.getRange(openSheet.getLastRow(), 1, 1, 13).setValues(lastVals);
else if (cellValue == "CLOSED")
closedSheet.getRange(closedSheet.getLastRow(), 1, 1, 13).setValues(lastVals);
else if (cellValue == "LOST")
lostSheet.getRange(lostSheet.getLastRow(), 1, 1, 13).setValues(lastVals);
var lastVals = formSub.getRange(formSub.getLastRow(), 1, 1, 13).getValues();
allLeads.getRange(allLeads.getLastRow(), 1, 1, 13).setValues(lastVals);
}
Приведенный выше фрагмент работает, получая последнюю строку из таблицы, а затем вставляя ее в нужное место на основе cellValue
. Чтобы получить последнюю строку листа, был использован метод getLastRow()
.
Поскольку вы хотите, чтобы он выполнялся на при каждой отправке формы , вы должны использовать onFormSubmit()
устанавливаемый триггер и настройте его следующим образом:
Примечание: У вас должен быть сценарий , связанный с формой .
Ссылка