Sub Bsp()
Dim Matrix as Range
set Matrix = ActiveSheets("Tabelle1").Range("A1:B2")
End Sub
Wie geht das aber nun mit einem von mir markierten Zellbereich?
Problem 2:
Wenn Problem 1 gelöst ist möchte ich mit den beiden in den jeweiligen Variablen gespeicherten Matrizen
rechnen (Bsp: Matrix1*Matrix2) und die Lösung in einen von mir markierten Bereich der Tabelle schreiben.
Wie geht das?
Problem 3:
Wie kann ich eine Worksheet.Function auf eine einzelne Spalte oder Zeile meiner Matrix anwenden, um z.B. den Mittelwert der Spalte auszurechnen?
Für eure Unterstützung wäre ich dankbar
mfg
Tommy
Option Explicit
Sub test()
Dim rngA As Range, rngB As Range, rngC As Range
Dim AWF As WorksheetFunction
Set AWF = Application.WorksheetFunction
Range("C5:E9").Select ' hier nur zum Test
Set rngA = Selection
rngA.Interior.ColorIndex = 38
Range("G2:K4").Select ' manuell markiert
Set rngB = Selection
rngB.Interior.ColorIndex = 35
Range("E12:I16").Select ' manuell markiert
Set rngC = Selection
rngC.Interior.ColorIndex = 34
rngC = AWF.MMult(rngA, rngB)
Cells(12, 3) = AWF.Average(rngC.Columns(2))
End Sub
Und hier die Mappe mit ein paar Beispieldaten: https://www.herber.de/bbs/user/53608.xls
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Function MatrixMult(rnga As Range, rngb As Range) As Range
Dim AWF As WorksheetFunction
Set AWF = Application.WorksheetFunction
MatrixMult = AWF.MMult(rnga, rngb)
'Ausgabebereich
End Function
(Hintergrund: Ich brauche die Source für ein UserForm)
Function MatrixMult(rnga As Range, rngb As Range)
Dim AWF As WorksheetFunction
Set AWF = Application.WorksheetFunction
MatrixMult = AWF.MMult(rnga, rngb)
'Ausgabebereich
End Function
Jetzt muss ich nur noch eine Prüfanweisung basteln, dass wenn
Spaltenvektor Matrixa1<>ZeilenvektorMatrix2, eine Meldung erscheint, dass die Rechnung nicht ausgeführt werden kann.
Trotzdem Vielen Dank an dieser Stelle, für die schnelle Unterstützung.