Vbscript 将数据从sub sub传输到Function,然后返回到main sub

Vbscript 将数据从sub sub传输到Function,然后返回到main sub,vbscript,catia,Vbscript,Catia,我试图编写代码来填充函数中的数组,然后将结果返回给main Sub。但这个函数是从另一个子函数(Sub-Sub)调用的。为了了解这将如何工作,我尝试一步一步地去做。并编写了以下代码: Sub CATMain() Dim val1 Call WalkDownTree() 'Here I call Sub to walk down Product Tree in CATIA val1 = ParamTable(PartNumber, Name, Material, Textu

我试图编写代码来填充函数中的数组,然后将结果返回给main Sub。但这个函数是从另一个子函数(Sub-Sub)调用的。为了了解这将如何工作,我尝试一步一步地去做。并编写了以下代码:

Sub CATMain()
    Dim val1
    Call WalkDownTree() 'Here I call Sub to walk down Product Tree in CATIA
    val1 = ParamTable(PartNumber, Name, Material, Texture, Color, Quantity)
    For i=0 To UBound(val1)
        MsgBox val1(i)
    Next

End Sub

Sub WalkDownTree() 'Simplified code of the walk down tree to understand data transfer
    PartNumber = "PartNumber"
    Name = "Name"
    Material = "Material"
    Texture = "Texture"
    Color = "Color"
    Quantity = 1
    Call ParamTable(PartNumber, Name, Material, Texture, Color, Quantity)
End Sub

Function ParamTable(PartNumber, Name, Material, Texture, Color, Quantity) 'Simplified array filing code. At original code I get all data from Part
    Dim BOMTable(6,1000)
    BOMTable(1,k) = PartNumber 
    BOMTable(2,k) = Name
    BOMTable(3,k) = Material
    BOMTable(4,k) = Texture
    BOMTable(5,k) = Color
    BOMTable(6,k) = 1
    ParamTable = BOMTable
End Function
但我在“msgboxval1(I)”行有错误:“下标超出范围”。 我错过了什么?
如果
val1
是一个二维数组,您希望在
val1(0)
中找到什么。你还没有指定你的第二维度。@GeertBellekens,你说得对!非常感谢。但现在“MsgBox”处的数组为空。显然,我在函数和子函数之间错误地传输数据。