我的问题:
有没有办法将字符串拆分成数组,然后将其作为参数传递给期望数组的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
命令解释为将变量转换为数组。 (如果这是一个错误的假设,请告诉我!)
答案 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