spreadsheet - texto - ¿Cómo cambiar el color de una fila de la hoja de cálculo de google cuando se edita una celda en la fila?
numeros a letras google sheets (2)
Puede intentar verificar su código en busca de errores o problemas utilizando la clase Logger como sigue:
try {
//your code
}
catch(e) {
Logger.log(e);
}
Luego puede ir a Ver -> Registros desde el Editor de scripts para ver si cada línea de código funciona como se espera. También la transcripción de Ejecución podría ser útil para ver si el código se rompe en una línea particular de código. Puede ver más detalles sobre cómo funciona cada método de solución de problemas .
Ya he intentado esto: Hoja de cálculo de Google: Script para cambiar el color de la fila cuando una celda cambia el texto;
Pero no puede hacer que funcione. El color de la fila no cambia a # 000000
Esto es lo que tengo hasta ahora:
function onEdit(event)
{
var ss = event.source.getActiveSheet();
var r = event.source.getActiveRange();
var currentValue = r.getValue();
if(currentValue == "dags dato")
{
var dd = Utilities.formatDate(new Date(), "GMT", "yyyy-MM-dd");
r.setValue(dd);
}
else if(currentValue == "dialog")
{
setRowColor("yellow");
}
else if(currentValue == "besvaret")
{
setRowColor("yellow");
}
else if(currentValue == "afvist")
{
setRowColor("red");
}
}
function setRowColor(color)
{
var range = SpreadsheetApp.getActiveSheet().getDataRange();
var statusColumnOffset = getStatusColumnOffset();
for (var i = range.getRow(); i < range.getLastRow(); i++) {
rowRange = range.offset(i, 0, 1);
status = rowRange.offset(0, statusColumnOffset).getValue();
rowRange.setBackgroundColor("#000000");
}
//Returns the offset value of the column titled "Status"
//(eg, if the 7th column is labeled "Status", this function returns 6)
function getStatusColumnOffset() {
lastColumn = SpreadsheetApp.getActiveSheet().getLastColumn();
var range = SpreadsheetApp.getActiveSheet().getRange(1,1,1,lastColumn);
for (var i = 0; i < range.getLastColumn(); i++) {
if (range.offset(0, i, 1, 1).getValue() == "Status") {
return i;
}
}
}
Escribí un método más rápido y más limpio para mí y quería compartirlo.
function onEdit(e) {
if (e) {
var ss = e.source.getActiveSheet();
var r = e.source.getActiveRange();
// If you want to be specific
// do not work in first row
// do not work in other sheets except "MySheet"
if (r.getRow() != 1 && ss.getName() == "MySheet") {
// E.g. status column is 2nd (B)
status = ss.getRange(r.getRow(), 2).getValue();
// Specify the range with which You want to highlight
// with some reading of API you can easily modify the range selection properties
// (e.g. to automatically select all columns)
rowRange = ss.getRange(r.getRow(),1,1,19);
// This changes font color
if (status == ''YES'') {
rowRange.setFontColor("#999999");
} else if (status == ''N/A'') {
rowRange.setFontColor("#999999");
// DEFAULT
} else if (status == '''') {
rowRange.setFontColor("#000000");
}
}
}
}