Error en definición de variable código VB

Estoy adecuando un código en un formulario pero me arroja un error en cuanto declaración de variable

Explico:

En esta macro le digo que anexare una foto

Private Sub cmd_Imagen_Click()
On Error Resume Next
        ArchivoIMG = Application.GetOpenFilename("Imágenes jpg,*.jpg,Imágenes bmp,*.bmp", 0, "Seleccionar Imágen para Reegistro de Clientes")
        fotografia.Picture = LoadPicture("")
        fotografia.Picture = LoadPicture(ArchivoIMG)
End Sub

aqui tengo el formulario con la option explict

Option Explicit
Dim ArchivoIMG As String
Private Sub UserForm_Activate()
Set h = Sheets(Hoja2.Name)
ListBox1.ColumnCount = 4 'numero de columnas
ListBox1.ColumnWidths = "130 pt;120 pt;280 pt;120 pt" 'asignando ancho de columnas
'ListBox1.ColumnHeads = True
ListBox1.RowSource = "COLABORADORES!A4:D" & h.Range("A" & Rows.Count).End(xlUp).Row
End Sub

el detalle me da al querer ejecutar el formualrio y marca en AZUL  esto:

Set h = Sheets(Hoja2.Name)

y sale el mensaje de delcaracion de variable

¿Qué estoy haciendo mal?

3 Respuestas

Respuesta
1

Si tienes la instrucción option explicit todas las variables deben ser declaradas con Dim en tu caso seria Dim as worksheet y después de eso pones Set H=worksheets("xxx"), sino las declaras te pondrá ese error

Respuesta
1

En vba no es necesario declarar las variables, todas son declaradas en automático como Variant. Si tu macro no es muy extensa, no utilices la instrucción Option Explicit; pero si quieres declarar todas las variables, entonces deberás hacerlo de manera adecuada porque si las declaras erróneamente podrás tener errores en la ejecución.

Más sobre variables:

Según su función ¿Cómo declarar variables?

Respuesta
1

Solucionaste tu problema yo veo que esto te puede traer problemas si te estás refiriendo a la hoja2 cuyo nombre es hoja dos deberías escribir así

Set h= Sheets("Hoja2")

Set h = Sheets(Hoja2.Name)

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas