Tenho um projeto para apps scripts, sou iniciante e estou apanhando aos montes

Saudações, o algoritmo se resume a obter dados em linhas, e colunas de uma aba da planilha e transferir para outra aba, mas com algumas exigências, 1° exigência: a primeira coluna da aba de destino deve receber a data o hora do momento de execução sempre atrelado a linha de dados, se não houver dados na linha ela não deve fazer parte da execução. 2° exigência: todas as vezes que for executado o script os dados salvos na aba de destino devem descer (respeitando os dados anteriormente salvos) e saltar 1 linha (ficar visivelmente mais confortável de ler os dados, sempre que salvo novos dados você consiga ver a separação entre as execuções do script) para que os novos dados ocupem o topo da aba. Segue minha trágica tentativa:

function transferirDados() {
  // Obtém a planilha ativa
  var planilha = SpreadsheetApp.getActiveSpreadsheet();
  
  // Define a aba de origem e a aba de destino
  var abaOrigem = planilha.getSheetByName("Saída 1");
  var abaDestino = planilha.getSheetByName("Banco Saída 1");
  
  // Define o intervalo de linhas e colunas a serem transferidos
  var linhaInicial = 9;
  var linhaFinal = 18;
  var colunaInicial = 4;
  var colunaFinal = 7;
  
  // Percorre as linhas do intervalo
  for (var linha = linhaInicial; linha <= linhaFinal; linha++) {
    // Verifica se há dados na linha de origem
    var dadosLinha = abaOrigem.getRange(linha, colunaInicial, 1, colunaFinal - colunaInicial + 1).getValues()[0];
    if (dadosLinha.some(value => value !== '')) { // Verifica se pelo menos um valor não é vazio
      // Insere a data e hora na primeira coluna da linha na aba de destino
      var dataHora = new Date();
      abaDestino.getRange(abaDestino.getLastRow() + 1, 1).setValue(dataHora);
      
      // Transfere os dados da linha para a aba de destino
      abaDestino.getRange(abaDestino.getLastRow(), 2, 1, colunaFinal - colunaInicial + 1).setValues([dadosLinha]);
    }
  }
  
}
2 curtidas