Error de compilación al usar lo que devuelve un inputBox
publicado
Buenas chic@s.
En un momento determinado de la macro solicito mediante un cuadro de diálogo la hoja en la que se van a trasladar ciertos datos. Uso esta expresión:
hojaDestino = InputBox(prompt:="Introduce el nombre de la hoja", Title:="Hoja de destino de los datos", Default:=hojaActiva)
También he probado:
hojaDestino = Application.InputBox(prompt:="Introduce el nombre de la hoja", Title:="Hoja de destino de los datos", Default:=hojaActiva, type:=2)
La variable hojaDestino la declaro como String y todo funciona perfectamente. La puedo usar para crear una hoja nueva sin problema, o para escribir en una celda concreta de esa hoja.
El error surge cuando quiero pasarla como parámetro en un par de funciones que he creado que requieren una CADENA. Entonces me da un error de compilación: el tipo de argumento de byRef no coincide. Es como si no fuera una cadena en realidad, aunque cuando depuro paso a paso y veo su valor, aparece entrecomillado y correcto. Os paso un ejemplo de una de las dos funciones en la que la quiero pasar como parámetro:
Function BuscarHoja(nombreHoja As String) As Boolean
For i = 1 To Worksheets.Count
If Worksheets(i).Name = nombreHoja Then
BuscarHoja = True
Exit Function
End If
Next
BuscarHoja = False
End Function
Cuando la llamo utilizando BuscarHoja(hojaDestino) me da este error de compilación.
Muchas gracias de antemano.
Featured Replies
Archivado
Este tema está ahora archivado y está cerrado a más respuestas.
Buenas chic@s.
En un momento determinado de la macro solicito mediante un cuadro de diálogo la hoja en la que se van a trasladar ciertos datos. Uso esta expresión:
hojaDestino = InputBox(prompt:="Introduce el nombre de la hoja", Title:="Hoja de destino de los datos", Default:=hojaActiva)
También he probado:
hojaDestino = Application.InputBox(prompt:="Introduce el nombre de la hoja", Title:="Hoja de destino de los datos", Default:=hojaActiva, type:=2)
La variable hojaDestino la declaro como String y todo funciona perfectamente. La puedo usar para crear una hoja nueva sin problema, o para escribir en una celda concreta de esa hoja.
El error surge cuando quiero pasarla como parámetro en un par de funciones que he creado que requieren una CADENA. Entonces me da un error de compilación: el tipo de argumento de byRef no coincide. Es como si no fuera una cadena en realidad, aunque cuando depuro paso a paso y veo su valor, aparece entrecomillado y correcto. Os paso un ejemplo de una de las dos funciones en la que la quiero pasar como parámetro:
Function BuscarHoja(nombreHoja As String) As Boolean
For i = 1 To Worksheets.Count
If Worksheets(i).Name = nombreHoja Then
BuscarHoja = True
Exit Function
End If
Next
BuscarHoja = False
End Function
Cuando la llamo utilizando BuscarHoja(hojaDestino) me da este error de compilación.
Muchas gracias de antemano.