У меня есть электронная таблица, где пользователи могут обновлять ячейку в столбце «J» с примечаниями, однако, когда они обновляют эту ячейку, мне нужен мой скрипт для запуска.
Затем он скопирует всю информацию из столбцов «I» и «J» и вставит их в другую ячейку, а затем поместит формулу Vlookup обратно в «J», откуда она только что взяла информацию.
Это может показаться сложным способом обходить вещи, но поскольку у меня есть разные листы, извлекающие информацию из разных рабочих книг, мне нужно, чтобы это происходило таким образом.
Однако я пробовал множество решений и не могу запустить его при смене ячейки.
Я попробовал установить триггер изменения, но он работает на всю книгу и часто приводит к удалению информации, которую он должен копировать.
Я вставил код, над которым работаю, ниже, любая помощь будет благодарна.
function onChange(e)
{
var editRange = { // J:J
top : 2,
bottom : 2000,
left : 10,
right : 10
};
// Exit if we're out of range
var thisRow = e.range.getRow();
if (thisRow < editRange.top || thisRow > editRange.bottom) return;
var thisCol = e.range.getColumn();
if (thisCol < editRange.left || thisCol > editRange.right) return;
//Where Is The Data Stored That You Want To Copy
var ss = SpreadsheetApp.openById("1ZQLKnCHD9acTXCKpTeOnJshHEz43FDPdKZ-U6Me-k_k")
var West = ss.getSheetByName("West Orders")
var WestNotes = ss.getSheetByName("West Notes")
//Ranges of The Data You Want To Copy
var CopyWestNotes = West.getRange(2, 9,West.getLastRow(),2).getValues()
//Clear The Data Before Overiding
var ClearNotes = WestNotes.getRange(2,1,WestNotes.getLastRow(),2).clear()
//Ranges Of The Data You Want To Store
var PasteWestId = WestNotes.getRange(2,1,West.getLastRow(),2).setValues(CopyWestNotes);
//Put a formula in to update Notes;
var formula = '=IFerror(VLOOKUP(i2,\'West Notes\'!A:B,2,false)," ")'
var WestFormula = West.getRange(2,10,West.getLastRow(),1).setValue(formula)
}