Bre*_*mLA 1 arrays vba arguments function
我的问题:
有没有办法将字符串拆分为数组,然后将其作为参数传递给期望数组的Sub或Function?
细节:
我下面有两个简单的VBA Subs.Sub foo()将字符串拆分为数组,然后尝试将其传递给Sub bar().
Sub foo()
aTest = Split("1,2,3", ",")
bar (aTest)
End Sub
Sub bar(ByRef aArray())
' Do something
End Sub
Run Code Online (Sandbox Code Playgroud)
但是,他们不会编译; 在该行中bar (aTest),参数不被识别为数组.这是错误:
Compile error:
Type mismatch: array or user-defined type expected
Run Code Online (Sandbox Code Playgroud)
我认为错误正在发生,因为编译器不会将该Split命令解释为将变量转换为数组.(如果这是一个错误的假设,请告诉我!)
由于您似乎不喜欢使用Variants,因此如果您需要,可以更加具体:
Sub foo()
Dim aTest() As String
aTest = Split("1,2,3", ",")
Debug.Print TypeName(aTest) 'String()
bar aTest
End Sub
Sub bar(ByRef aArray() As String)
' Do something
End Sub
Run Code Online (Sandbox Code Playgroud)