Cómo abrir un archivo de Hojas de cálculo de Google e ir inmediatamente al final del archivo

14

Tengo una hoja de cálculo de Google con 100 líneas.

Cada vez que abro ese archivo, quiero insertar una fila al final de mi tabla.

¿Cómo puedo saltar a la última línea de la tabla cuando abro el documento?

Porque ahora tengo que desplazarme hacia abajo para poder insertar una nueva línea.

Puedes hacerlo
fuente
1
¿Sería suficiente una combinación de teclas? Ctrl + Fin debería saltar al final del archivo.
cerveza
1
@AlE .: ¿Ctrl + End se mueve también a la última columna? No tengo un cuadro de Windows para probar, pero en Mac, el atajo correspondiente (⌘ + Fn + ➔) se mueve a la última fila, última columna.
Vidar S. Ramdal
@Vidar: Sí, probablemente. (No tengo la capacidad de probarlo en este momento). Se rectifica con bastante facilidad Homepresionando la tecla.
cerveza

Respuestas:

11

Puede crear un activador que se ejecute cada vez que se abra su hoja de cálculo.

Vaya a Herramientas → Editor de secuencias de comandos y pegue lo siguiente:

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);
}

Haga clic en el botón Guardar , luego cierre el editor de scripts y la hoja de cálculo.

Ahora, abra su hoja de cálculo nuevamente. Déle un par de segundos, y debería ver que se inserta una nueva fila al final de su hoja, y que esa fila está seleccionada.

He creado esta hoja de cálculo para demostrar: no dude en copiarla (haga clic en Archivo → Copiar ). Necesitará ejecutar su propia copia para ver que el script se ejecuta con éxito.

El guión explicaba:

El onOpennombre de la función tiene un significado especial. Ver documentación . Se necesita un solo argumento, un Eventobjeto . Su sourcepropiedad es una referencia a la hoja de cálculo que se está abriendo. Con la hoja de cálculo, podemos hacer getLastRow()para encontrar el índice de la última fila que tiene contenido . getMaxRows()nos da el número máximo de filas en la hoja, incluso las vacías. Con ese conocimiento, podemos ver si la última fila tiene contenido; de ser así, agregamos una nueva fila vacía. Finalmente, podemos crear un rango e invocarlo setActiveRangepara pasar a la última fila.


Si solo desea pasar a la última línea, sin insertar nada, el script se puede simplificar de la siguiente manera:

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
fuente
¡muchas gracias por tu ayuda! Intentaré esto más tarde. Gracias por su tiempo y ayuda
UcanDoIt
1
esto no va para la última línea con texto, como quiero. :( va para la última línea que tiene fórmulas.
UcanDoIt
1
¿me pueden ayudar para que vaya a la última línea con texto?
UcanDoIt
1
ok, estoy en el trabajo y no tengo acceso a Google aquí, pero lo haré más tarde. Lo intentaré ahora con palabras ... En mi hoja de cálculo tengo fórmulas, en columnas, hasta la línea 1000. Y he insertado datos hasta la línea 200 (solo). Entonces, con su solución cuando abro el documento, va a la línea 1000, y quería que fuera a la línea 200 para poder insertar nuevos datos en la siguiente línea disponible.
UcanDoIt
1
@Hamideh No hay ningún evento desencadenado al cambiar entre hojas en el mismo documento, que yo sepa. Entonces este enfoque no funcionaría en ese caso.
Vidar S. Ramdal
3

Si tiene el problema adicional de que ciertas columnas se rellenan con fórmulas hasta el final, y desea desplazarse a la primera fila que tiene datos que no son de fórmula, aquí hay un enfoque. En este caso, la columna A tiene fórmulas hasta el fondo, así que me desplazo a la primera celda en blanco en la columna B en la fila 5 o debajo.

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 indica la otra respuesta, debe abrir Herramientas → Editor de secuencias de comandos , pegar en esa función, nombrar su "proyecto", guardar y volver a cargar la hoja de cálculo.

Robert Tupelo-Schneck
fuente