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

Arrays 在VBA中,如何将字符串拆分为数组,然后将其作为参数传递给子函数或函数,arrays,function,vba,arguments,Arrays,Function,Vba,Arguments,我的问题: 有没有办法将字符串拆分为数组,然后将其作为参数传递给需要数组的子函数或函数 详细信息: 我有两个简单的VBA潜艇下面。Sub foo()将字符串拆分为数组,然后尝试将其传递给Sub bar() 但是,它们不会编译;在条(aTest)行中,参数不能识别为数组。以下是错误: Compile error: Type mismatch: array or user-defined type expected 我认为发生错误是因为编译器没有将Split命令解释为将变量生成数组。(如果这是一

我的问题:

有没有办法将字符串拆分为数组,然后将其作为参数传递给需要数组的子函数或函数


详细信息

我有两个简单的VBA潜艇下面。Sub foo()将字符串拆分为数组,然后尝试将其传递给Sub bar()

但是,它们不会编译;在
条(aTest)
行中,参数不能识别为数组。以下是错误:

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

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

因为您似乎不喜欢使用变体,如果您想要:

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

使用
子栏(ByRef aArray)
代替
子栏(ByRef aArray())
@simoco Well shoot,这很简单!我在澄清接收子栏中的变量类型时遇到了这个问题:
子栏(ByRef aArray作为字符串)
。一旦我将变量和参数视为变量(ugh),VBA就可以了。谢谢哇!真不敢相信我没试过!我必须回顾我所有的测试,看看我在每个测试中做了哪些不同。
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