Я создал форму Google, связанную с электронной таблицей Google, содержащей два листа. Кроме того, я создал функцию в скриптах Google, под названием «handleFormSubmission», что при запуске (по представлению связанной формы):У вас возникли проблемы с запуском функции электронной таблицы Google при отправке формы
создает переменный, содержащее значение этого представления из листа одного:
var s0Row = s0.getRange("A"+(s0Last)+":J"+(s0Last)).getValues();
затем, если соответствующие ID условие выполняется на обоих листах, устанавливает эти значения из листа одного в соответствующий диапазон на листе два:
s1Row.setValues(s0Row);
Там, наверное, лучший способ сделать это, но на данный момент функция отлично работает при запуске из скриптов Google, и форма возвращает сообщения на листе.
Проблема, с которой я столкнулась, заключается в том, что эта функция запускается, когда связанная форма была отправлена. Я попытался установить этот триггер, как вы увидите на снимке экрана ниже.
Код
function handleFormSubmission() {
var ss = SpreadsheetApp.openById("1FmArzo50IV2Wmykgsa89l_EARjzkiyeFDoPaCjGyBZM");
SpreadsheetApp.setActiveSpreadsheet(ss);
var sheet = SpreadsheetApp.getActive();
var s0 = sheet.getSheets()[0];
var s0Last = s0.getLastRow();
var s1 = sheet.getSheets()[1];
var s1Last = s1.getLastRow();
var s0Bid = s0.getRange(s0Last, 10).getValue();
var s0Row = s0.getRange("A"+(s0Last)+":J"+(s0Last)).getValues();
for (var i = 2; i < s1Last + 1; i++) {
var s1Bid = s1.getRange(i, 10).getValue();
var s1First = s1.getRange(i, 2).getValue();
var s1LastName = s1.getRange(i, 3).getValue();
var s1Row = s1.getRange("A"+(i)+":J"+(i));
if (s0Bid === s1Bid) {
Logger.log(i + " " + s1First + s1LastName);
Logger.log("s0: " + s0Bid);
Logger.log("s1: " + s1Bid);
Logger.log("Match!");
s1Row.setValues(s0Row);
Logger.log("----------------------");
break;
} else {
Logger.log(i + " " + s1First + s1LastName);
Logger.log("s0: " + s0Bid);
Logger.log("s1: " + s1Bid);
Logger.log("Nope...");
Logger.log("----------------------");
}
};
};`
Триггеры текущего проекта
Я думаю, событие должен быть «Из формы» не «Из таблицы». Попробуйте изменить это, и оно работает. Надеюсь, это поможет! – KRR
Спасибо KRR, но «Из таблицы» - единственный вариант. –
Это потому, что вы работаете над редактором скриптов, открытым из электронной таблицы. Он заполняется, когда вы открываете редактор сценариев из формы и записываете функцию в этот редактор. – KRR