VBA Ussing Arrays

J

Jeff

I have an array in VBA, and I want to find the inverse using the

"MINVERSE", but I want to do this in VBA, and not use values from the
worksheet.

Sub MatrixFormuls()

Dim Array1(2, 2), Array2(2, 1), Array3(2, 2), Array4(2, 1), X(2, 2) As Double

Array1(1, 1) = 3
Array1(1, 2) = 4
Array1(2, 1) = 4
Array1(2, 2) = 8

Array2(1, 1) = 8
Array2(2, 1) = 1

'Array3(1, 1) = Application.Index(Application.MInverse(Array1), 1, 1)
X(1, 1) = Application.MInverse(Array1(2, 2))


I am trying to set X = to the inverse of Array1(2,2)

Since X will have 4 values = a 2 x 2 array I want to use the "Index"
function to get each of the inverse values and assign it to a 2x2 array.

My current code does not work

Thanks for your help
 
D

Dana DeLouis

Dim Array1(2, 2),

Hi. As a technique, as you step thru your code, pull up the "Locals
Window." You will see that your lower bound of Array1 is 0, and probably
not your expected value of 1.
Perhaps one of a few ways...

Sub MatrixFormuls()
Dim Array1(1 To 2, 1 To 2)
Dim X As Variant

Array1(1, 1) = 3
Array1(1, 2) = 4
Array1(2, 1) = 4
Array1(2, 2) = 8

X = WorksheetFunction.MInverse(Array1)
End Sub

HTH. :>)
 
D

Dana DeLouis

Forgot to mention...If you would like a slightly different approach for
small arrays...

Sub Demo()
Dim Array1, X

Array1 = [{3,4;4,8}]
X = WorksheetFunction.MInverse(Array1)
End Sub

HTH ;>)
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top