Estoy tratando de crear una implementación de hojas de Google de cronómetro que use celdas en lugar de botones. Sin embargo, no puedo entender cómo hacer que mi variable [sec] sea global para que los cambios se muestren cuando se colocan en la celda. NO quiero usar botones como disparador.
Código
function onEdit(e) { var range = e.range; var spreadSheet = e.source; var sheetName = spreadSheet.getActiveSheet().getName(); var column = range.getColumn(); var row = range.getRow(); var inputValue = e.value; //Clock variables var hr = 0; var min = 0; var sec = 0; var stopTime = true; //need to make seconds a global variable if(sheetName == 'timer' && column == 1 && row == 2 && inputValue == "start"){ SpreadsheetApp.getActiveSpreadsheet().getSheetByName('timer').getRange('B2').setValue("00:00:00"); stopTime = false; while (stopTime == false ) { sec = sec + 1; if (sec == 60) { min = min + 1; sec = 0; } if (min == 60) { hr = hr + 1; min = 0; sec = 0; } if (sec < 10 || sec == 0) { sec = '0' + sec; } if (min < 10 || min == 0) { min = '0' + min; } if (hr < 10 || hr == 0) { hr = '0' + hr; } } } if(sheetName == 'timer' && column == 1 && row == 2 && inputValue == "stop"){ SpreadsheetApp.getActiveSpreadsheet().getSheetByName('timer').getRange('C2').setValue([sec]); } }