Disculpas si me repito pero ... ¿Como borrar los nombres en un l ib

15/02/2005 - 16:59 por Un quijote | Informe spam
Saludos,
Como ya pregunté anteriormente,
tengo la siguiente rutina con la que borro todos los nombres de celda en un
libro y sigo teniendo dos preguntas:

1ª ¿Como podria borrar los nombres de solo una hoja cualquiera?

2ª Ya que el libro tiene más de 1500 nombres, y con esta rutina el proceso
se alarga en exceso, no existe alguna otra forma de mejorar el tiempo de
ejecución.

Sub borrar_Nombres()
Dim nombCelda As Name
Dim n As Integer
'Recorrer el conjunto de objetos Names y eliminar
For Each nombCelda In ActiveWorkbook.Names
nombCelda.Delete
Next

End Sub

Gracias de nuevo.
 

Leer las respuestas

#1 Fernando Arroyo
15/02/2005 - 17:24 | Informe spam
"Un quijote" escribió en el mensaje news:
Saludos,
Como ya pregunté anteriormente,
tengo la siguiente rutina con la que borro todos los nombres de celda en un
libro y sigo teniendo dos preguntas:

1ª ¿Como podria borrar los nombres de solo una hoja cualquiera?




Si te refieres a los nombres que hacen referencia a una hoja determinada, puedes averiguar dicha hoja mediante algo como:

ObjetoName.RefersToRange.Parent.Name

es decir:

If ObjetoName.RefersToRange.Parent.Name = "NombreDeLaHoja" Then

2ª Ya que el libro tiene más de 1500 nombres, y con esta rutina el proceso
se alarga en exceso, no existe alguna otra forma de mejorar el tiempo de
ejecución.

Sub borrar_Nombres()
Dim nombCelda As Name
Dim n As Integer
'Recorrer el conjunto de objetos Names y eliminar
For Each nombCelda In ActiveWorkbook.Names
nombCelda.Delete
Next

End Sub




Dudo que sea más rápida, pero por probar que no quede:

Sub eliminar2()
Dim n As Long
For n = ThisWorkbook.Names.Count To 1 Step -1
ThisWorkbook.Names(n).Delete
Next n
End Sub

Un saludo.


Fernando Arroyo
MS MVP - Excel


Gracias de nuevo.

Preguntas similares