Public Function ProductoMatrices(Matriz1 As Range, Matriz2 As Range) As Variant
Dim MatrizResultante()
Dim n As Integer, m As Integer 'n filas, m columnas
Dim x As Integer, y As Integer
m = Matriz2.Rows.Count - 1 'las matrices van de 0 a m-1
n = Matriz2.Columns.Count - 1
If Matriz1.Columns.Count > 1 Then 'La primera matriz no es mx1
Exit Function
End If
If Matriz1.Rows.Count - 1 <> m Then 'Las matrices no tienen el mismo número de filas
Exit Function
End If
ReDim MatrizResultante(m, n) 'Redimensionamos la matriz
For x = 0 To m 'Para cada columna
For y = 0 To n 'Para cada fila
'Multiplicamos
MatrizResultante(x, y) = Matriz1(x + 1, 1) * Matriz2(x + 1, y + 1)
Next
Next
ProductoMatrices = MatrizResultante 'Devolvemos el resultado
End Function