#google-apps-script #google-sheets
#google-apps-script #google-sheets
Вопрос:
Я довольно новичок в скрипте, но хорошо разбираюсь в функциях листа. Я смог собрать эту функцию, которая работает как VLOOKUP (). Мне не нужен VLOOKUP (), потому что мне нужно иметь возможность перезаписывать ячейки, помещенные из функции, поэтому я обратился к сценариям. Этот скрипт работает при запуске, но я хочу, чтобы он запускался только при редактировании ячейки A2 в форме листа. Кто-нибудь может помочь мне добавить триггер onEdit?
function lookUp() {
var lookUpValue = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Form").getRange("A2").getValue();
var ss = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Current");
var lr = ss.getLastRow()-1;
var lookUpRangeValues = ss.getRange(2,1,lr,1).getValues();
var newData = lookUpRangeValues.map(function(r){return r[0];});
var index = newData.indexOf(lookUpValue) 2;
var result = ss.getRange(index,2,1,22).getValues();
var print = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Form").getRange("B2:W2").setValues(result);
}
Любая помощь очень ценится!
Ответ №1:
function onMyEdit(e) {
//e.source.toast("Entry");//If you not seeing this then you don't have a trigger
const sh=e.range.getSheet();
//sh.getRange('B1').setValue(JSON.stringify(e));
//sh.getRange('C1').setValue(sh.getName());
if (sh.getName()=='Sheet3' amp;amp; e.range.columnStart==1 amp;amp; e.range.rowStart==2) {
//e.source.toast("Past the if");
//sh.getRange('D1').setValue(e.value);
var lookUpValue = e.source.getSheetByName("Form").getRange("A2").getValue();
var ss = e.source.getSheetByName("Current");
var lr = ss.getLastRow()-1;
var lookUpRangeValues = ss.getRange(2,1,lr,1).getValues();
var newData = lookUpRangeValues.map(function(r){return r[0];});
var index = newData.indexOf(lookUpValue) 2;
var result = ss.getRange(index,2,1,22).getValues();
sh.getRange("B2:W2").setValues(result);
}
}
И я думаю, вам понадобится устанавливаемый триггер onEdit
Примечание: вы не можете запустить это из редактора сценариев. Он должен запускаться из устанавливаемого триггера, который предоставляет соответствующий объект события. Вы можете использовать Logger.log(JSON.stringify(e))
, чтобы узнать больше об объекте события.
Комментарии:
1. Купер, спасибо, но я не могу заставить триггер работать. Также похоже, что у вас настроен скрипт для работы со всем столбцом A. Мне нужен только A1. Вот копия листа, над которым я пытаюсь работать. docs.google.com/spreadsheets/d /…
2. Извините, что A2 не A1
3. Да, он настроен только для A2. Столбец 1 Строка 2
4. Вы создали устанавливаемый триггер?
5. В сценарии? Я прочитал статьи GAS, и, насколько я понимаю, это нужно было записать в сценарий? Если это так, я старался изо всех сил.