Error 1004 al usar función MInverse sobre matriz de dimension variable
publicado
Buenas a todos:
Estoy empezando en la programación en VBA para Excel y gracias a vuestro foro, estoy aprendiendo bastantes cosillas pero me he quedado atascado con algo y no soy capaz de encontrar la solución.
Estoy haciendo, a modo de ejercicio, un sencillo programa que permita al usuario introducir una matriz de dimensión variable para calcular su función inversa. La matriz se escribe desde la celda A4 en adelante y mi idea es que el programa lea el número de columnas con contenido para establecer el orden de la matriz, redimensionar los vectores y calcular la inversa. El programa es el siguiente:
Option Base 1
Dim M() As Variant
Dim MInv() As Variant
Sub Inversa()
Dim n As Integer
Dim i As Integer, j As Integer
'Calculo de la dimensión de la matriz
n = 0
Do While Cells(4, n + 1) <> ""
n = n + 1
Loop
'Redimensionamiento de las variables
ReDim M(1 To n, 1 To n)
ReDim MInv(1 To n, 1 To n)
'Almacenamiento de los coeficientes de la matriz
For i = 1 To n
For j = 1 To n
M(i, j) = Cells(14 + i, j)
Next j
Next i
'Cálculo de la matriz inversa
MInv = Application.WorksheetFunction.MInverse(M)
'Escritura de la matriz
For i = 1 To n
For j = 1 To n
Worksheets("Hoja2").Cells(i, j) = MInv(i, j)
Next j
Next i
Buenas a todos:
Estoy empezando en la programación en VBA para Excel y gracias a vuestro foro, estoy aprendiendo bastantes cosillas pero me he quedado atascado con algo y no soy capaz de encontrar la solución.
Estoy haciendo, a modo de ejercicio, un sencillo programa que permita al usuario introducir una matriz de dimensión variable para calcular su función inversa. La matriz se escribe desde la celda A4 en adelante y mi idea es que el programa lea el número de columnas con contenido para establecer el orden de la matriz, redimensionar los vectores y calcular la inversa. El programa es el siguiente:
El problema surge al llegar a la línea
ya que me aparece el error siguiente:
"No se puede obtener la propiedad MInverse de la clase WorksheetFunction".
Si alguien fuese tan amable de explicarme donde puede estar el error, le estaría muy agradecido.
Un saludo.
Ejercicioinversas.xls