jueves, 3 de junio de 2021

Limpiar la denonimación de los intervalos con nombre importados de otra hoja de cálculo

Al hilo de los intervalos con nombre , cuando se copia una pestaña en otra hoja
de cálculo, resulta que los intervalos con nombre de dicha pestaña también se 
copian pero el nombre de dicho intervalo cambia, Google le pone un prenombre 
con la denominación de la pestaña, tal que así: mi_rango pasa a llamarse 
mipestaña!mi_rango.
A parte de quedar feo, da problemas en el código, ya que, por ejemplo, no puedes
ir a la pestaña donde está dicho rango.
 
Por lo tanto, he creado una función que se ocupa de limpiar los nombres de los
intervalos, quitándoles dicho prenombre y volviendo al nombre original.
 
function limpiar_intervalos_con_nombre (){
  // Conseguimos todos los intervalos con nombre de la hoja de cálculo
var herramienta = SpreadsheetApp.getActiveSpreadsheet()
var rangos = herramienta.getNamedRanges()

// Preparamos las variables necesarias: punto desde donde borrar el nombre, 
nuevo nombre con la segunda parte, rango a aplicar que es el mismo que tenía
var partir_por
var nuevo_nombre
var cual_es_el_rango

// Hacemos un bucle por intervalos con nombre
for (cada in rangos){
  // Comprobamos que tenga en el nombre un ! para pillar los intervalos importados
if (rangos[cada].getName().indexOf('!') !=-1){
  // Conseguimos el punto de corte, que es uno más siempre
 partir_por = rangos[cada].getName().indexOf('!')+parseInt(1)
 // Partimos el nombre viejo desde ese punto en adelante
  nuevo_nombre = rangos[cada].getName().substring(partir_por)
 // Guardamos el rango que tenía el intervalo con nombre
  cual_es_el_rango = rangos[cada].getRange()
//Borramos el intervalo con nombre
rangos[cada].remove()
// Lo volvemos a crear con nuevo nombre y el mismo rango
herramienta.setNamedRange(nuevo_nombre,cual_es_el_rango)
}
}

}

No hay comentarios:

Publicar un comentario

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...