Trigger onEdit (e) не запускается - PullRequest
0 голосов
/ 18 ноября 2018

Когда я пытался просто setValue("random") к какой-либо ячейке с помощью этого триггера, он работает, но когда я пытался выполнить этот код (для возврата определенных имен листов из выбранной электронной таблицы), он не работает!Когда я запускаю этот кусок кода как отдельную функцию, он работает и возвращает листы нормально.

Итак, почему он не выполняет часть кода из части "// RETURNING JUST BUILDING LIST", когда я изменяю значение вКлетка D2?

function onEdit(e) {

var range = e.range;
var rangeEdit = e.range.getA1Notation();

if(rangeEdit == "D2"){

//RETURNING JUST BUILDING LIST  
var ss = SpreadsheetApp.getActiveSpreadsheet();

ss.getSheetsByName("OVERVIEW").getRange('A2').setValue("OK")

var sRNG = ss.getSheetByName("KEYS").getRange('A1:A12').getValues();

for (var z=0; z<sRNG.length; z++)
  if (sRNG[z][0] == ss.getSheetByName("OVERVIEW").getRange('G3').getValue()) {
  var xyz = z + 1;
  }

 var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
 var range = ss.getSheetByName("OVERVIEW").getRange(1, 8, 50, 1); 
 range.clear();

var shArray = [];
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();

var spreadSheetsInA = 
SpreadsheetApp.openByUrl(ss.getSheetByName("KEYS").getRange('B' + xyz).getValue()).getSheets();

shArray = spreadSheetsInA.map(function(sheet) {
return [sheet.getName()];
});

var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var range = ss.getSheetByName("OVERVIEW").getRange(1, 8, shArray.length, 1);
range.setValues(shArray);

var rDEL = 1
for (var xdel = 0; xdel<shArray.length; xdel++){
if(shArray[xdel][0].indexOf("Overview")>-1 | shArray[xdel][0].indexOf("Cashflow")>-1 | shArray[xdel][0].indexOf("Dates")>-1){
var delSHT = ss.getSheetByName("OVERVIEW");
delSHT.getRange('H' + rDEL).clear();

}
rDEL++
}  
}
}

Даже когда я попробовал это, это не работает ...

function onEdit(e) {

  var range = e.range;
  var rangeEdit = e.range.getA1Notation();
  if(rangeEdit == "D2"){
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  ss.getSheetsByName("OVERVIEW").getRange("A2").setValue("ok")
}
}

В принципе, мне просто нужно выполнить код, если значение в D2 в листе Overview равноизменилось!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...