【发布时间】:2018-07-10 19:04:36
【问题描述】:
我有以下两个程序:
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
当我运行 OuterSub 时,我在 prm = Array(prm) in InnerSub 中收到以下错误:
运行时错误“13”:类型不匹配
只有当我传入一个类型为 String 的变量时才会发生这种情况。以下任何替代方案都不会产生错误:
- 将
OuterSub中的s定义为常量:Const s = "Lorem ipsum dolor sit amet" - 传入字符串文字:
InnerSub "Lorem ipsum dolor sit amet" - 将
OuterSub中的s定义为Variant:Dim s As Variant
将s 定义为固定长度的字符串没有帮助。
为什么会这样?我该如何解决?
更新
在InnerSub 中声明一个本地String 变量也无济于事:
Sub InnerSub(prm As Variant)
Dim s As String
s = prm
prm = Array(s)
End Sub
也不将参数括在括号中:
Sub InnerSub(prm As Variant)
prm = Array((prm))
End Sub
【问题讨论】:
标签: vba