У меня есть следующий код, чтобы попытаться установить формулу поиска, когда пользователь по ошибке удаляет ячейку:
function onEdit(e)
{
var ssA = SpreadsheetApp.getActive();
var ss = ssA.getSheetByName("Completed Work Requests")
var lastRow = ss.getLastRow();
var range = ss.getRange(5,6,lastRow,1);
var data = range.getValues();
for(var i=0;i<data.length;i++)
{
if(data[i][0] == "")//If true then it's blank
{
data[i][0]="=IFERROR(INDEX('Client lookup sheet'!C[-1]:C[-1],MATCH(R[0]C[-4],'Client lookup sheet'!C[-5]:C[-5],false)),\"\")"
range.setValue(data[i][0]);
}
}}
Проблема, с которой я сталкиваюсь, это range.setValue (data [i] [0]); часть, где я вижу, что он устанавливает весь диапазон на значение data [i] [0] в предыдущей строке. Проблема заключается в том, что даже если пользователь вводит значение вручную, функция onEdit просто сбрасывает значение в data [i] [0] = ...., хотя я хочу, чтобы они могли устанавливать ручное значение без перезаписи функции. значение.
Таким образом, мой вопрос сводится к тому, что мне нужно использовать вместо range.setValue (data [i] [0]), чтобы гарантировать, что только ячейка, оцененная data [i] [0] == "", установлена на стать формулой, а не всего ассортимента?
Спасибо!