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