Vbscript 将数据从sub sub传输到Function,然后返回到main sub
我试图编写代码来填充函数中的数组,然后将结果返回给main Sub。但这个函数是从另一个子函数(Sub-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
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”处的数组为空。显然,我在函数和子函数之间错误地传输数据。