Visual Basic - Matriz inversa con excel desde VB6

Life is soft - evento anual de software empresarial
 
Vista:

Matriz inversa con excel desde VB6

Publicado por Juan Carlos Gutiérrez (1 intervención) el 17/05/2012 20:20:37
Hola,

Tengo un problemilla que no consigo solucionar. Quiero calcular la inversa de una matriz. Esto es una tarea fácil por ejemplo con EXCEL utilzando la función MINVERSA. El problema es que quiero aprovechar esa funcionalidad de EXCEL desde VB6.

He probado lo siguiente:

Dim objExcel As Object
Set objExcel = CreateObject("Excel.application")
With objExcel
'Añadiendo un workbook
.workbooks.Add
For fila = 1 To 5
For columnas = 1 To 5
Randomize Timer
valor = Rnd * 100
.cells(fila, columnas) = valor
Next columnas
Next fila

.cells(7, 1) = ("=MINVERSE(A1:E5)")


.Columns("A:A").entirecolumn.autofit
End With

objExcel.Visible = True
Set objExcel = Nothing


Esto funciona bien, pero el problema es que sólo obtengo el elemento (1,1) de la matriz inversa en la celda (7,1)

En EXCEL esto se soluciona seleccionando el rango de la matriz donde deben aparecer los valores de la inversa y hacienco CONTROL+SHIFT+ENTER, con lo que se consigue que la formula se extienda al rango de la matriz y aparezca como {=MINVERSA(A1:E5)}. Por tanto probé:

.cells(7, 1) = ("{=MINVERSE(A1:E5)}") pero nada. ¿Alguien me podría ayudar?

Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Matriz inversa con excel desde VB6

Publicado por osker (1 intervención) el 10/11/2012 16:58:49
En lugar de usar el comando .Cells prueba con

.Range("A30:E35")=Application.WorksheetFunction.MInverse(matrizA)

siendo es espacio A30:E35 donde quieres escribir la matriz y matrizA la matriz de la cual quieres saber su inversa. Antes tendrás que definir la matrizA, claro. Yo lo hago así: Dim matrizA As Double
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar