Como abrir um arquivo do Planilhas Google e ir imediatamente para o final do arquivo

14

Eu tenho uma planilha do Google com 100 linhas.

Toda vez que abro esse arquivo, quero inserir uma linha no final da minha tabela.

Como posso pular para a última linha da tabela quando abro o documento?

Porque agora eu tenho que rolar para baixo para poder inserir uma nova linha.

Você pode fazer
fonte
1
Uma combinação de teclas seria suficiente? Ctrl + End deve pular para o final do arquivo.
ale
1
@AlE .: Ctrl + End também se move para a última coluna? Não tenho uma caixa do Windows para testar, mas no Mac, o atalho correspondente (⌘ + Fn + ➔) se move para a última linha, a última coluna.
Vidar S. Ramdal
@Vidar: Sim, provavelmente. (Não tenho a capacidade de testá-lo no momento.) Com facilidade, retifique-se facilmente pressionando a Hometecla.
ale

Respostas:

11

Você pode criar um gatilho que seja executado sempre que sua planilha for aberta.

Vá para Ferramentas → Editor de scripts e cole o seguinte:

function onOpen(e) {
  var spreadsheet = e.source;
  var sheet = spreadsheet.getActiveSheet();
  var lastRow = spreadsheet.getLastRow();
  if (sheet.getMaxRows() == lastRow) {
    sheet.appendRow([""]);
  }
  lastRow = lastRow + 1;
  var range = sheet.getRange("A" + lastRow + ":A" + lastRow);
  sheet.setActiveRange(range);
}

Clique no botão Salvar , feche o editor de scripts e a planilha.

Agora, abra sua planilha novamente. Aguarde alguns segundos e você verá que uma nova linha é inserida no final da planilha e que essa linha está selecionada.

Criei esta planilha para demonstrar - sinta-se à vontade para copiá-la (clique em Arquivo → Copiar ). Você precisará executar sua própria cópia para ver o script ser executado com êxito.

O script explicou:

O onOpennome da função tem um significado especial. Veja a documentação . É preciso um único argumento, um Eventobjeto . Sua sourcepropriedade é uma referência à planilha que está sendo aberta. Com a planilha, podemos fazer getLastRow()para encontrar o índice da última linha que possui conteúdo . getMaxRows()nos fornece o número máximo de linhas na planilha, mesmo as vazias. Com esse conhecimento, podemos ver se a última linha tem conteúdo - se sim, anexamos uma nova linha vazia. Finalmente, podemos criar um intervalo e acessá setActiveRange-lo, para ir para a última linha.


Se você quiser apenas ir para a última linha, sem inserir nada, o script pode ser simplificado da seguinte forma:

function onOpen(e) {
  var spreadsheet = e.source;
  var sheet = spreadsheet.getActiveSheet();
  var lastRow = spreadsheet.getLastRow();
  var range = sheet.getRange("A" + lastRow + ":A" + lastRow);
  sheet.setActiveRange(range);
}
Vidar S. Ramdal
fonte
Muito obrigado por sua ajuda! Vou tentar isso mais tarde. Obrigado pelo seu tempo e ajuda
UcanDoIt
1
isso não vai para a última linha com texto, como eu quero. :( vai para a última linha que possui fórmulas.
UcanDoIt 3/16/16
1
você pode me ajudar a ir para a última linha com texto?
precisa saber é o seguinte
1
ok estou no trabalho e não tenho acesso ao Google aqui, mas vou fazer isso mais tarde .. Vou tentar agora com palavras ... Na minha planilha tenho fórmulas, em colunas, até a linha 1000. E inseri dados até a linha 200 (apenas). Então, com a sua solução, quando abro o documento, ele vai para a linha 1000 e eu queria que ele fosse para a linha 200, para que eu pudesse inserir novos dados na próxima linha disponível.
precisa saber é o seguinte
1
@ Hamideh Não há nenhum evento acionado ao alternar entre folhas no mesmo documento, pelo que sei. Portanto, essa abordagem não funcionaria nesse caso.
Vidar S. Ramdal 14/01
3

Se você tiver o problema adicional de determinadas colunas serem preenchidas com fórmulas até o fim e desejar rolar para a primeira linha que possui dados que não são da fórmula, aqui está uma abordagem. Nesse caso, a coluna A tem fórmulas até o fim, então eu role para a primeira célula em branco na coluna B na linha 5 ou abaixo.

function onOpen(e) {
    var spreadsheet = e.source;
    var sheet = spreadsheet.getActiveSheet();
    var row = 5;
    while (true) {
        var range = sheet.getRange("B" + row);
        if (!range.getValue()) {
            sheet.setActiveRange(range);
            return;
        }
        row++;
    }
}

Como a outra resposta indica, você deve abrir Ferramentas → Editor de scripts , colar nessa função, nomear seu "projeto", salvar e recarregar a planilha.

Robert Tupelo-Schneck
fonte