myArray = Array("A", "B", "C", "D", "E")
Call someSub(myArray)
...
Sub someSub(ByRef myArray() as String) 'Error here
'contents here
End Sub
第二部分的类型不匹配错误——是什么原因造成的?
您是否有任何机会忽略使用Option Explicit
然后继续不指定 myArray 的类型?这将使它成为一个变体,你说as String
这确实是一个类型不匹配。
想通了-必须将其作为普通变体传递
Sub someSub(myArray as Variant)
真的应该使用选项显式,然后将所有变量定义为特定类型。在这种情况下:
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]
它有点长,但是类型安全会让你的代码运行得更快,并且更容易阅读。它还可以防止您遇到的错误...