Digite incompatibilidade ao passar a variável de string para o parâmetro Variant e atribuir o resultado da função Array ao parâmetro
Eu tenho os dois procedimentos a seguir:
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
Quando eu corroOuterSub
, Recebo o seguinte erro emprm = Array(prm)
noInnerSub
:
Erro em tempo de execução '13': incompatibilidade de tipo
Isso só acontece quando passo uma variável digitada comoString
. Qualquer uma das seguintes alternativas não produz o erro:
s
noOuterSub
como uma constante:Const s = "Lorem ipsum dolor sit amet"
Passando em uma string literal:InnerSub "Lorem ipsum dolor sit amet"
Definindos
noOuterSub
como umVariant
:Dim s As Variant
Definindos
como uma string de comprimento fixo não ajuda.
Por que isso está acontecendo? Como posso contornar isso?
Atualizar
Declarando um localString
variável dentroInnerSub
também não ajuda:
Sub InnerSub(prm As Variant)
Dim s As String
s = prm
prm = Array(s)
End Sub
nem quebra o parâmetro entre parênteses:
Sub InnerSub(prm As Variant)
prm = Array((prm))
End Sub