Excel 访问VBA传递函数中的多维数组

Excel 访问VBA传递函数中的多维数组,excel,ms-access,multidimensional-array,vba,Excel,Ms Access,Multidimensional Array,Vba,Access 2013 32位:Win 7 64位 试过了:没有用 (如果你能回答这个问题,你也许能回答那个问题,但它们有点不同) 我的计算实际上比简单的加法复杂得多,而且我的数组动态地很大(x,5) 按照上面所示的方式进行调试会填充myArray,但调试时会显示,当我将鼠标悬停在函数调用中包装的myArray上时,它会出错,然后再进入函数关键是CalculateLastColofArray(myArray()),因为我在myArray()参数中包含了括号,它正在查找单个值,不把数组作为一个整体

Access 2013 32位:Win 7 64位

试过了:没有用

(如果你能回答这个问题,你也许能回答那个问题,但它们有点不同)

我的计算实际上比简单的加法复杂得多,而且我的数组动态地很大(x,5)


按照上面所示的方式进行调试会填充myArray,但调试时会显示,当我将鼠标悬停在函数调用中包装的myArray上时,它会出错,然后再进入函数

关键是
CalculateLastColofArray(myArray())
,因为我在myArray()参数中包含了括号,它正在查找单个值,不把数组作为一个整体。 将此行更改为
CalculateLasClofarray(myArray)
解决了我的问题


它总是很小的…

您可以将多维数组作为参数传递

您还可以将函数的结果分配给数组变量,但是该变量必须声明为动态数组(因此不能在声明行中指定其维度)

此外,代码中还有一些其他错误。以下是正确的版本:

Sub CreateArray()
    'Dim myArray(1 To 10, 1 To 5) As Variant
    Dim myArray() As Variant

    ReDim myArray(1 To 10, 1 To 5)

    'Code that assigns values to (1 to 10, 1 to 4)
    myArray = CalculateLastColofArray(myArray)
    'Do stuff with full array

End Sub

Function CalculateLastColofArray(calcArray() As Variant) As Variant()
    For i = LBound(calcArray) To UBound(calcArray)
        calcArray(i, 5) = calcArray(i, 1) + calcArray(i, 3)
    Next i
    CalculateLastColofArray = calcArray
End Function

您尚未将参数
calcArray
声明为数组。试试
函数CalculateLastColofArray(calcArray())
嘿,斯科特,谢谢你的回答-这就是问题所在,但它在过程的另一端--myArray()被读取为单个变量,而不是数组myArray,我必须将myArray()对myArray的调用更改为正确。不管怎样,问题都是。。。如果你按照我的建议或你所做的去做,两种方法都会奏效。基本上,你试着把一个苹果称为橘子,你需要让它们都工作:)只是觉得它值得注意,所以你不认为它只能是一种方式。
Sub CreateArray()
    'Dim myArray(1 To 10, 1 To 5) As Variant
    Dim myArray() As Variant

    ReDim myArray(1 To 10, 1 To 5)

    'Code that assigns values to (1 to 10, 1 to 4)
    myArray = CalculateLastColofArray(myArray)
    'Do stuff with full array

End Sub

Function CalculateLastColofArray(calcArray() As Variant) As Variant()
    For i = LBound(calcArray) To UBound(calcArray)
        calcArray(i, 5) = calcArray(i, 1) + calcArray(i, 3)
    Next i
    CalculateLastColofArray = calcArray
End Function