当我将矩阵定义为Dim M(1 To 6, 1 To 6)
时,我可以轻松地使用函数Application.WorksheetFunction.Minverse(M)
但是如果我想使用动态数组Dim M()
并且稍后使用Redim K(6,6)
我得到一个错误“运行时错误'1004'无法获得WorksheetFunction类的minverse属性”。
我做错了什么或者在动态阵列上使用Minverse无法获得矩阵逆?
快速测试:
Sub test()
Dim M As Variant
Dim i As Long, j As Long
ReDim M(1 To 2, 1 To 2) As Double
M(1, 1) = 5
M(1, 2) = 5
M(2, 2) = 3
M = Application.WorksheetFunction.MInverse(M)
For i = 1 To 2
For j = 1 To 2
Debug.Print M(i, j)
Next j
Next i
End Sub
输出:
0.2
-0.333333333333333
0
0.333333333333333
所以,不,在动态数组上使用该函数没有问题。也许你有一个错字?或者,如果没有反转(例如在上面的示例中删除行M(2,2) = 3
),则会收到该错误消息。如果这是一个问题,您可以使用错误处理来捕获该错误。