Я настроил некоторый код для копирования и вставки определенного значения из формулы, используя отправку формы в качестве триггера. Это сработало! Но теперь это дает мне ошибку «слишком много одновременных вызовов» со ссылкой на строку 3.
Он не вызывался более 20 раз в день (как я знаю, это установленный предел), поэтому я представляю, что сделал что-то не так с моим кодом... (я НЕ парень JS.)
function pasteValue(){
var sheet =
SpreadsheetApp.getActiveSpreadsheet().getSheetByName('INVOICES')
var lastRow = sheet.getDataRange().getValues();
lastRow.forEach(function (row,index) {
if (row[1] == "") {
lastRow.length = index;
}
});
var newRange = sheet.getRange(lastRow.length,13);
newRange.copyTo(newRange, {contentsOnly: true})
sheet.setActiveRange(newRange);
}
При отправке формы производятся расчеты с переменным процентом, который меняется со временем). Я хочу точно записать, что было на момент отправки, поэтому я вставляю формулу как значение.
Попробуйте добавить SpreadsheetApp.flush()
Если вы хотите удалить формулы, проще сделать что-то подобное с «отображаемыми значениями»:
function pasteValue(){
var sheet =
SpreadsheetApp.getActiveSpreadsheet().getSheetByName('INVOICES')
var data = sheet.getDataRange().getDisplayValues();
sheet.getRange(1, 1,data.length, data[0].length).setValues(data);
}
Почему вы копируете диапазон в себя? "newRange.copyTo(newRange, {contentsOnly: true})"