Excel VBA minverse

问题描述 投票:-1回答:1

当我将矩阵定义为Dim M(1 To 6, 1 To 6)时,我可以轻松地使用函数Application.WorksheetFunction.Minverse(M)但是如果我想使用动态数组Dim M()并且稍后使用Redim K(6,6)我得到一个错误“运行时错误'1004'无法获得WorksheetFunction类的minverse属性”。

我做错了什么或者在动态阵列上使用Minverse无法获得矩阵逆?

excel-vba vba excel
1个回答
1
投票

快速测试:

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),则会收到该错误消息。如果这是一个问题,您可以使用错误处理来捕获该错误。

© www.soinside.com 2019 - 2024. All rights reserved.