myArray = Array("A", "B", "C", "D", "E")
Call someSub(myArray)
...
Sub someSub(ByRef myArray() as String) 'Error here
'contents here
End Sub
第二部分输入不匹配错误 - 导致错误的原因是什么?
答案 0 :(得分:9)
您是否有任何机会省略使用Option Explicit
然后继续指定myArray的类型?这将使它成为一种变体,你说as String
确实是一种类型不匹配。
答案 1 :(得分:5)
想出来 - 必须将其作为普通的Variant传递
Sub someSub(myArray as Variant)
答案 2 :(得分:0)
应该使用显式选项,然后将所有变量定义为特定类型。在这种情况下:
Option Explicit
Dim myArray(1 to 10) as String 'define the number of elements before you use it.
myArray(1) = 'A'
myArray(2) = 'B'
[etc etc]
它有点长,但是类型安全会使你的代码运行得更快并且更容易阅读。它还可以防止您遇到的错误......