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

时间:2014-03-21 21:35:54

标签: arrays function vba arguments

我的问题:

有没有办法将字符串拆分成数组,然后将其作为参数传递给期望数组的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

然而,他们不会编译;在行bar (aTest)中,参数未被识别为数组。这是错误:

Compile error:
Type mismatch: array or user-defined type expected

我认为错误正在发生,因为编译器没有将Split命令解释为将变量转换为数组。 (如果这是一个错误的假设,请告诉我!)

1 个答案:

答案 0 :(得分:5)

由于您似乎不喜欢使用变体,因此如果您愿意,可以更加具体:

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