Comencé a usar Google Apps Script ayer y tengo problemas para ejecutar el código correctamente cuando intento obtener un rango de celdas en lugar de solo una celda.
Este es el código completo, mostrará un mensaje emergente si la condición es verdadera:
function CheckPlanNumber() { // Fetch the monthly sales var planNumbersRange = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Plan Numbers").getRange("B2"); var planNumbers = planNumbersRange.getValues(); var ui = SpreadsheetApp.getUi(); // Check totals sales if (planNumbers == "XXXX") { ui.alert('Contact - Plan Number missing!'); } }Sin embargo, cuando trato de extender el rango a más celdas para pasar por al menos 10 celdas y validarlas, no muestra el mensaje emergente.
function CheckPlanNumber() { // Fetch the monthly sales var planNumbersRange = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Plan Numbers").getRange("B2:B10"); var planNumbers = planNumbersRange.getValues(); var ui = SpreadsheetApp.getUi(); // Check totals sales if (planNumbers == "XXXX") { ui.alert('Contact - Plan Number missing!'); } }Range.getValues devuelve valores en una matriz bidimensional, por lo que si tiene una tabla como esta
| | A | B | | --- | --- | ------------ | | 1 | | Plan numbers | | 2 | | 123 | | 3 | | XXX | | 4 | | 456 | Range.getValues( 'B2:B4' ) devolverá
[ [ "123" ] , [ "XXX" ] , [ "456" ] ]Tendrá que recorrer cada valor y compararlos.
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Plan Numbers"); var planNumbersRange = sheet.getRange("B2:B10"); var planNumbers = planNumbersRange.getValues(); var ui = SpreadsheetApp.getUi(); for ( var row = 0; row < planNumbers.length; row++ ) { if ( planNumbers[ row ][ 0 ] == "XXXX" || planNumbers[ row ][ 0 ] == "__" ) { ui.alert( 'Contact - Plan Number missing at row ' + ( row + 2 ) ); } }