Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

436
Visualizações
Hojas de cálculo de Google: cómo borrar, poner a cero o reemplazar celdas específicas de manera eficiente a través de un script

Se trata de tres acciones similares necesarias en una hoja. Esperemos que esto termine siendo una pregunta útil en general.

Tengo un script que copia los valores de celdas arbitrarias en una hoja a una sola fila en otra hoja, cortesía de la respuesta de doubleunary a una pregunta anterior. Ahora necesito saber cómo restablecer la hoja de entrada para estar lista para otra entrada.

Algunas celdas deben estar en blanco, otras deben tener ceros y otras deben restablecerse a un valor de texto predeterminado, que se almacena en otra hoja para que pueda cambiarse fácilmente si es necesario.

El script para extraer los datos es este:

 function submitDataOhSoMuchFaster() { const ss = SpreadsheetApp.getActive(); const values = ss.getActiveSheet().getRange('A1:Z13').getValues(); const entry = [ { column: 26, row: 12 }, // Z12 { column: 3, row: 2 }, // C2 { column: 14, row: 2 }, // N2 { column: 3, row: 10 }, // C10 { column: 6, row: 2 }, // F2 { column: 3, row: 4 }, // C4 { column: 5, row: 4 }, // E4 { column: 3, row: 5 }, // C5 { column: 5, row: 5 }, // E5 { column: 12, row: 5 }, // L5 { column: 12, row: 4 }, // L4 { column: 26, row: 13 }, // Z13 { column: 20, row: 4 }, // T4 { column: 20, row: 5 }, // T5 { column: 3, row: 6 }, // C6 ]; ss.getSheetByName('Master Log') .appendRow(entry.map(cell => values[cell.row - 1][cell.column - 1])); };

Quiero saber si hay una manera elegante de revertir eso, y borrar o escribir ceros en un conjunto de celdas o rangos usando un método similar, y cómo escribiría de manera eficiente los valores de una matriz pequeña en una hoja de origen a celdas arbitrarias en la hoja de destino.

Como ejemplos, necesito:

Borrar C4, E4, J10:J14, etc.

Cero T5:T6, D12:D15

Copie el contenido de la celda AT2 en una hoja a F2 en la hoja de destino, AT3 a C10, etc. (todos los datos de origen para esto están en una sola columna, por lo que una matriz parece viable)

Sé cómo hacer esto de una manera prolongada que usa una tonelada de comandos Clear, getValue y setValue, pero ¿cómo lo hago de manera eficiente?

Editar:

El rango fuente para el tercer paso está aquí:

Rango de origen para entradas predeterminadas

Y los objetivos están aquí:

Hoja de destino para entradas predeterminadas

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Solución:

La forma más elegante que se me ocurre es usar RangeList :

  • RangeList.setValue establece el valor de todas las celdas en todos los rangos especificados a la vez.
  • RangeList.getRanges obtiene una matriz con los rangos y luego puede establecer los nuevos valores en un bucle.

Fragmento de código:

 function updateSheet() { const ss = SpreadsheetApp.getActiveSpreadsheet(); const targetSheet = ss.getSheetByName("TARGET"); targetSheet.getRangeList(["C4","E4","J10:J14"]).setValue(""); targetSheet.getRangeList(["T5:T6", "D12:D15"]).setValue(0); const sourceSheet = ss.getSheetByName("SOURCE"); const values = sourceSheet.getRange("AT2:AT" + sourceSheet.getLastRow()) .getValues().flat(); targetSheet.getRangeList(["F2","C10",...]).getRanges() .forEach((range,i) => range.setValue(values[i])); }
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda