ALGUIEN ME PUEDE DECIR PORQUE!!??

24/10/2003 - 09:16 por Petit | Informe spam
En una aplicación de BV que trabaja con dos libros de
EXCEL, hago un primer control para que el usuario
seleccione la hoja que quiera, y para comprobar que no
está abierta ya, le meto esta función:

For Each wkbL In Workbooks
If wkbL.FullName = Hoja1 Then
MsgBox ("El libro ya está abierto!!")
Exit Sub
End If
Next wkbL

Alguien me podría decir porque ni siquiera se me te en el
bucle, si tengo tres o cuatro hojas abiertas ya cuando lo
hago, para probar (evidentemente una de ellas es la que
quiero abrir, para que salte). O que me den alguna
alternativa, por favor!!

Gracias!!
 

Leer las respuestas

#1 Fernando Arroyo
24/10/2003 - 16:39 | Informe spam
Me parece que estás mezclando hojas con libros. Libro (el objeto Workbook) es el fichero que contiene las hojas (los objetos Worksheets). Aparte de esto, la propiedad FullName te devolverá la ruta completa del libro. Si sólo quieres averiguar o comparar el nombre del libro debes usar su propiedad Name. Por último, tal como tienes el código Hoja1 tendría que ser una variable.

Posiblemente lo siguiente te sirva:

For Each wkbL In Workbooks
If wkbL.Name = "Libro1" Then
MsgBox ("El libro ya está abierto!!")
Exit Sub
End If
Next wkbL

Un saludo.


Fernando Arroyo
MS MVP - Excel

"Petit" escribió en el mensaje news:062c01c399fe$c3664bf0$
En una aplicación de BV que trabaja con dos libros de
EXCEL, hago un primer control para que el usuario
seleccione la hoja que quiera, y para comprobar que no
está abierta ya, le meto esta función:

For Each wkbL In Workbooks
If wkbL.FullName = Hoja1 Then
MsgBox ("El libro ya está abierto!!")
Exit Sub
End If
Next wkbL

Alguien me podría decir porque ni siquiera se me te en el
bucle, si tengo tres o cuatro hojas abiertas ya cuando lo
hago, para probar (evidentemente una de ellas es la que
quiero abrir, para que salte). O que me den alguna
alternativa, por favor!!

Gracias!!

Preguntas similares