No es inusual que en el código metamos líneas tal como esta:
var herramienta = SpreadsheetApp.getActiveSpreadsheet()
var pestana = herramienta.getSheetByName('guardias')
var dato = pestana.getRange('A3').getValue()
Estas dos líneas funcionarán solamente mientrás no se cambie el nombre de la pestaña y/o mientrás no se meta ninguna fila o columna antes de la fila 3 o de la columna A.
Pero en cuanto un usuario cambie el nombre de la pestaña... el código dejará de funcionar.
Y, metiendo una fila nueva antes de la 3, el código dará otro valor.
Ante este problema, tenemos la solución:
En vez de utilizar getSheetByName
crearemos un intervalo con nombre llamado "Educa_profesor" en la pestaña que queremos referenciar y en el código utilizaremos esta línea para conseguir la pestaña
herramienta. getRangeByName('Educa_profesor').getSheet()
Con esto logramos que no nos afecte el cambio de nombre de pestaña.
En el caso de pestana.getRange('A3').getValue() podemos utilizar el mismo proceso, es decir, crear un intervalo con nombre que apunte a A3 y en el código:
herramienta. getRangeByName('rangoA3').getValue()
========================================================
========================================================
En mi caso tengo un problema añadido ya que utilizo fórmulas dentro del código tal que así:
pestana.getRange('I11').setValue('=sort(unique('guardias'!A:A))')
Si cambiasen el nombre de la pestaña guardias o metiesen una columna nueva antes de A, la fórmula escrita daría error al no encontrar dicho nombre de pestaña.
Para evitarlo la solución es un poco más larga.
Nos apoyaríamos también en un intervalo con nombre que cogiese toda la fila A de la pestaña guardias y escribiríamos esta línea de código:
var mi_columna = "'"+herramienta.getRangeByName('columnaAA').getSheet().getName()+"'!"+herramienta.getRangeByName('columnaAA').getA1Notation()
Y la línea de escribir la fórmula quedaría así:
pestana.getRange('I11').setValue('=sort(unique('+mi_columna+'))')
Suscribirse a:
Enviar comentarios (Atom)
Crear PDF horizontal
El código que vamos a mostrar aquí no ha sido creado por nosotros, sino que lo hemos encontrado en Internet. Objetivo: Publicar una pesta...
-
La fórmula importrange es muy potente, ya que nos permite unir datos de diferentes hojas de cálculo y, con un poco de imaginación, ofrecer ...
-
Este artículo tiene como objetivo mostrar el código básico para trabajar con Drive, es decir, para recorrer todos los archivos y subcarpetas...
-
El código que vamos a mostrar aquí no ha sido creado por nosotros, sino que lo hemos encontrado en Internet. Objetivo: Publicar una pesta...
No hay comentarios:
Publicar un comentario