AKTUALISIEREN:
Wie in dieser Antwort geschrieben,
Logger.log
Sie erhalten entweder (eventuell) eine E-Mail mit Fehlern, die in Ihren Skripten aufgetreten sind, oder Script Editor
Sie können das Protokoll der letzten Ausführungsfunktion anzeigen, indem Sie auf View->Logs
(noch im Skripteditor) gehen. Auch dies zeigt Ihnen nur alles an, was von der letzten Funktion protokolliert wurde, die Sie von innen ausgeführt habenScript Editor
.
Das Skript, mit dem ich arbeiten wollte, hatte mit Tabellenkalkulationen zu tun. Ich habe eine Tabellenkalkulations-Checkliste erstellt, in der Elemente nach Prioritäten und dergleichen sortiert wurden.
Die einzigen Trigger, die ich für dieses Skript installiert habe, waren die Trigger onOpen und onEdit. Das Debuggen des onEdit-Triggers war am schwierigsten herauszufinden, da ich immer wieder dachte, wenn ich in meiner onEdit-Funktion einen Haltepunkt setze, die Tabelle öffne und eine Zelle bearbeite, würde mein Haltepunkt ausgelöst. Das ist nicht der Fall.
Um zu simulieren, dass ich eine Zelle bearbeitet habe, musste ich allerdings etwas in der eigentlichen Tabelle tun. Alles, was ich getan habe, war sicherzustellen, dass die Zelle, die ich als "bearbeitet" behandeln wollte, ausgewählt war, und dann Script Editor
ging ich zu Run->onEdit
. Dann würde mein Haltepunkt getroffen werden.
Ich musste jedoch aufhören, das Ereignisargument zu verwenden, das an die onEdit-Funktion übergeben wird - Sie können dies nicht simulieren, indem Sie dies tun Run->onEdit
. Alle Informationen, die ich aus der Tabelle benötigte, wie z. B. welche Zelle ausgewählt wurde usw., musste ich manuell herausfinden.
Wie auch immer, lange Antwort, aber ich habe es irgendwann herausgefunden.
EDIT :
Wenn Sie die von mir erstellte ToDo-Checkliste sehen möchten, können Sie sie hier überprüfen
(Ja, ich weiß, dass jeder es bearbeiten kann - das ist der Grund, es zu teilen!)
Ich hatte gehofft, dass Sie damit auch das Drehbuch sehen können. Da Sie es dort nicht sehen können, ist es hier:
function onOpen() {
setCheckboxes();
};
function setCheckboxes() {
var checklist = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("checklist");
var checklist_data_range = checklist.getDataRange();
var checklist_num_rows = checklist_data_range.getNumRows();
Logger.log("checklist num rows: " + checklist_num_rows);
var coredata = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("core_data");
var coredata_data_range = coredata.getDataRange();
for(var i = 0 ; i < checklist_num_rows-1; i++) {
var split = checklist_data_range.getCell(i+2, 3).getValue().split(" || ");
var item_id = split[split.length - 1];
if(item_id != "") {
item_id = parseInt(item_id);
Logger.log("setting value at ("+(i+2)+",2) to " + coredata_data_range.getCell(item_id+1, 3).getValue());
checklist_data_range.getCell(i+2,2).setValue(coredata_data_range.getCell(item_id+1, 3).getValue());
}
}
}
function onEdit() {
Logger.log("TESTING TESTING ON EDIT");
var active_sheet = SpreadsheetApp.getActiveSheet();
if(active_sheet.getName() == "checklist") {
var active_range = SpreadsheetApp.getActiveSheet().getActiveRange();
Logger.log("active_range: " + active_range);
Logger.log("active range col: " + active_range.getColumn() + "active range row: " + active_range.getRow());
Logger.log("active_range.value: " + active_range.getCell(1, 1).getValue());
Logger.log("active_range. colidx: " + active_range.getColumnIndex());
if(active_range.getCell(1,1).getValue() == "?" || active_range.getCell(1,1).getValue() == "?") {
Logger.log("made it!");
var next_cell = active_sheet.getRange(active_range.getRow(), active_range.getColumn()+1, 1, 1).getCell(1,1);
var val = next_cell.getValue();
Logger.log("val: " + val);
var splits = val.split(" || ");
var item_id = splits[splits.length-1];
Logger.log("item_id: " + item_id);
var core_data = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("core_data");
var sheet_data_range = core_data.getDataRange();
var num_rows = sheet_data_range.getNumRows();
var sheet_values = sheet_data_range.getValues();
Logger.log("num_rows: " + num_rows);
for(var i = 0; i < num_rows; i++) {
Logger.log("sheet_values[" + (i) + "][" + (8) + "] = " + sheet_values[i][8]);
if(sheet_values[i][8] == item_id) {
Logger.log("found it! tyring to set it...");
sheet_data_range.getCell(i+1, 2+1).setValue(active_range.getCell(1,1).getValue());
}
}
}
}
setCheckboxes();
};