Я мог бы понять, что вы хотите сделать, следующим образом.
Вы хотите переместить значения «A3: L» для «Sheet1» (Запись) в последнюю строку «Sheet2» (Данные), если значение «A3» существует.
Если это правильно, как насчет этой модификации?
Очки модификации:
- Использовал «A3: L» для диапазона для получения значений.
- Удалены пустые строки из значений «A3: L».
- Поместите значения на лист «Данные», используя
setValues()
.
Модифицированный скрипт:
function saveToData() {
var ss, s, r, v, target,ts,tss;
ss = SpreadsheetApp.getActive();
s = ss.getSheetByName('Entry');
if (s.getRange(3, 1).getValue()) {
r = s.getRange("A3:L"); // Modified
v = r.getValues().filter(function(e){return e.filter(String).length > 0}); // Modified
r.clear();
tts = SpreadsheetApp.openById('10_XEaQiR71QN_90nIIIvDAU6un1KuOhi9--AVVtk5FI'); // destination ID
ts = tts.getSheetByName('Data'); // destination Sheet tab name
ts.getRange(ts.getLastRow()+1, 1, v.length, v[0].length).setValues(v); // Modified
}
}
Другой шаблон:
Вы также можете использовать этот скрипт.
function saveToData3() {
var ss, s, r, v, target,ts,tss;
ss = SpreadsheetApp.getActive();
s = ss.getSheetByName('Entry');
if (s.getRange(3, 1).getValue()) {
tts = SpreadsheetApp.openById('10_XEaQiR71QN_90nIIIvDAU6un1KuOhi9--AVVtk5FI'); // destination ID
ts = tts.getSheetByName('Data'); // destination Sheet tab name
s.getRange("A3:L").moveTo(ts.getRange(ts.getLastRow()+1, 1)); // Added
}
}
Примечание:
- Этот скрипт изменил ваш скрипт. Поэтому, пожалуйста, будьте осторожны с идентификатором и названием листа.
Ссылка:
Если это не то, что вы хотите, пожалуйста, скажите мне. Я хотел бы изменить его.