ACTUALIZAR:
Como está escrito en esta respuesta,
Logger.log
le enviará un correo electrónico (eventualmente) de errores que ocurrieron en sus scripts o, si está ejecutando cosas desde el Script Editor
, puede ver el registro desde la última función de ejecución yendo a View->Logs
(todavía en el editor de scripts). Nuevamente, eso solo le mostrará cualquier cosa que haya sido registrada desde la última función que ejecutó desde adentroScript Editor
.
El guión que estaba tratando de poner en funcionamiento tenía que ver con hojas de cálculo: hice una hoja de cálculo de tipo de lista de verificación que clasificaba los elementos por prioridades y demás.
Los únicos activadores que instalé para ese script fueron los activadores onOpen y onEdit. La depuración del desencadenador onEdit fue la más difícil de descifrar, porque seguía pensando que si establecía un punto de interrupción en mi función onEdit, abría la hoja de cálculo, editaba una celda, que mi punto de interrupción se dispararía. Este no es el caso.
Sin embargo , para simular haber editado una celda, terminé teniendo que hacer algo en la hoja de cálculo real. Todo lo que hice fue asegurarme de que la celda que quería que se tratara como "editada" estuviera seleccionada, luego Script Editor
, iría a Run->onEdit
. Entonces mi punto de ruptura sería golpeado.
Sin embargo, tuve que dejar de usar el argumento de evento que se pasa a la función onEdit; no puede simular eso haciendo Run->onEdit
. Cualquier información que necesitaba de la hoja de cálculo, como qué celda se seleccionó, etc., tuve que averiguarla manualmente.
De todos modos, respuesta larga, pero finalmente lo descubrí.
EDITAR :
Si desea ver la lista de verificación de todo lo que hice, puede consultarla aquí
(sí, sé que cualquiera puede editarlo, ¡ese es el punto de compartirlo!)
Esperaba que también te dejara ver el guión. Como no puedes verlo allí, aquí está:
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();
};