Type no coincide al pasar la variable de cadena al parámetro Variant y asignar el resultado de la función Array al parámetro
Tengo los dos procedimientos siguientes:
Sub OuterSub()
Dim s As String
s = "Lorem ipsum dolor sit amet"
InnerSub s
End Sub
Sub InnerSub(prm As Variant)
prm = Array(prm)
End Sub
Cuando corroOuterSub
, Obtengo el siguiente error enprm = Array(prm)
inInnerSub
:
Error en tiempo de ejecución '13': tipo no coincide
Esto solo sucede cuando paso una variable escrita comoString
. Cualquiera de las siguientes alternativas no produce el error:
s
inOuterSub
como una constante:Const s = "Lorem ipsum dolor sit amet"
Passing en una cadena literal:InnerSub "Lorem ipsum dolor sit amet"
Definings
inOuterSub
como unVariant
:Dim s As Variant
Definings
como cadena de longitud fija no ayuda.
¿Por qué está pasando esto? ¿Cómo puedo solucionarlo?
Actualiza
Declarando un @ locString
variable dentro deInnerSub
tampoco ayuda:
Sub InnerSub(prm As Variant)
Dim s As String
s = prm
prm = Array(s)
End Sub
nor ajusta el parámetro entre paréntesis:
Sub InnerSub(prm As Variant)
prm = Array((prm))
End Sub