Excel VBA:传递数组时types不匹配
myArray = Array("A", "B", "C", "D", "E") Call someSub(myArray)
…
Sub someSub(ByRef myArray() as String) 'Error here 'contents here End Sub
在第二部分input不匹配错误 – 是什么原因造成的?
你有没有机会省略使用Option Explicit
,然后继续不指定myArray的types? 这将使它成为一个变体,你说的as String
,这确实是一个types不匹配。
想通了 – 不得不通过它作为简单的变种
Sub someSub(myArray as Variant)
应该真的使用显式选项,然后将所有variables定义为特定types。 在这种情况下:
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]
时间稍长一点,但是types安全将使您的代码运行得更快,并使其阅读起来更容易。 它也可以防止你遇到的错误…