Excel VBA:传递数组时键入不匹配

时间:2012-12-06 17:56:09

标签: excel vba excel-vba

    myArray = Array("A", "B", "C", "D", "E")

    Call someSub(myArray)

...

    Sub someSub(ByRef myArray() as String) 'Error here
       'contents here
    End Sub

第二部分输入不匹配错误 - 导致错误的原因是什么?

3 个答案:

答案 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]

它有点长,但是类型安全会使你的代码运行得更快并且更容易阅读。它还可以防止您遇到的错误......

相关问题