好的,似乎 WorksheetFunction.Index 也适用于数组数组。因此,您可以通过结合使用 WorksheetFunction.Index 来获取第 3 列和第 2 列和 WorksheetFunction.Transpose 来获取列的一维数组,然后使用 WorksheetFunction.SumProduct 来实现这一点。
Sub test()
aA = [{1,2, 3;4,5, 6;7,8, 9}]
aB = [{10, 11,12;13, 14,15;16, 17,18}]
'aA = Array(Array(1, 2, 3), Array(4, 5, 6), Array(7, 8, 9))
'aB = Array(Array(10, 11, 12), Array(13, 14, 15), Array(16, 17, 18))
aCol3of_aA = WorksheetFunction.Index(aA, 0, 3)
aCol2of_aB = WorksheetFunction.Index(aB, 0, 2)
aArr1 = WorksheetFunction.Transpose(aCol3of_aA)
aArr2 = WorksheetFunction.Transpose(aCol2of_aB)
dSumProduct = WorksheetFunction.SumProduct(aArr1, aArr2)
'= 3*11 + 6*14 + 9*17 = 270
MsgBox dSumProduct
End Sub