在VBA中,如何将字符串拆分为数组,然后将其作为参数传递给Sub或Function

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命令解释为将变量转换为数组.(如果这是一个错误的假设,请告诉我!)

Tim*_*ams 5

由于您似乎不喜欢使用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)