sheets scripts script para google functions findtext apps app google-apps-script formatting google-spreadsheet gs-conditional-formatting

google apps script - scripts - Google App Script-Formato condicional basado en otra celda



scripts para google sheets (2)

Supongamos que el país se ubica en (1,1) y el estado se ubica en (1,2) donde (i, j) indica la i-ésima fila y la j-ésima columna en la hoja de cálculo. Google Spreadsheets tiene 1 índice, lo que significa que los índices comienzan en 1.

var activeSheet = SpreadsheetApp.getActiveSheet(); for (var a = 2; a < activeSheet.getLastRow(); a++) { if (String(activeSheet.getRange(a,1).getCell(1,1)) === "United States") { if (String(activeSheet.getRange(a,2).getCell(1,1)) === null) { activeSheet.getRange(a, 2, 1, 1).setBackgroundColor(''red''); } } }

Estoy intentando descubrir cómo usar el formato condicional a través de un script en una hoja de cálculo de Google similar a lo que puedes hacer con la función de formato condicional.

Tengo dos columnas con la etiqueta ''País'' y ''Estado''. Si el valor en una celda es ''Estados Unidos'', quiero que la secuencia de comandos verifique la columna de estado adyacente para asegurarse de que no esté en blanco. Si es así, quiero que el fondo de la celda cambie a rojo.

¿Hay alguna forma de hacer esto en un script? No quiero utilizar la característica incorporada, ya que no se copia a las hojas recién creadas dentro de la hoja de cálculo, ya que haré que otros usuarios creen hojas nuevas.

Encontré algunas referencias, pero estoy teniendo problemas para adaptarlas a mis necesidades.

Enlaces: script de formato condicional de Google Spreadsheet

https://webapps.stackexchange.com/questions/16745/google-spreadsheets-conditional-formatting-based-on-another-cells-content


Intente copiar y pegar esto en un archivo de script en blanco. Esto depende de que la columna A sea el País y que la columna B sea el Estado, pero usted puede hacer tantas hojas como desee, y esto funcionará automáticamente.

Avíseme si desea una explicación de una parte específica, ya que no estoy seguro de cuál es su fondo de secuencias de comandos. He incluido algunos comentarios en el código.

function onEdit(e) { var ss = e.source; var sheet = ss.getActiveSheet(); var range = sheet.getRange("A:B"); var values = range.getValues(); //for each row that data is present for(var i = 0; i < values.length; i++) { var cell = sheet.getRange(i + 1, 2); //check if the first value of that row is exactly "United States" if(values[i][0] === "United States") { //if it is, check for a blank cell. If so, make it red. if(values[i][1] === "") { cell.setBackground(''red''); } else { cell.setBackground(''white''); } } else { //In any other case, make it white. cell.setBackground(''white''); } } }