Tagchen liebe Leut,
folgende Aufgabenstellung habe ich zu lösen.
Ich habe 5 Tabellenblätter mit Matrizen (Matrizen A,B,C,D,F)
Es soll eine Matrix M entstehen durch M=((A+B)*C-D)*F
Bei dieser Aufgabe sollen wir die Unterprogrammtechnik üben, heißt ich soll ein übergeordnetes Aufruf-Sub erstellen, welches nichts beinhaltet, außer die Befehle Call Matrix_Einlesen, Call Matrix_Add, Call Matrix_Mult und Call Matrix_Ausgabe.
Heißt für mich, ich würde die 5 Matrizen am besten als 3 dimensionales Array einlesen, 1.Dimension für die Matrixnummer und 2 Dimensionen für Zeilen und Spalten.
Matrix_Einlesen habe ich meiner Ansicht nach ganz ordentlich hinbekommen, ich bekomme es allerdings nicht hin, das hier erzeugte Array mit einer anderen Sub aufzugreifen und einzelne Elemente zu addieren.
Hier mal der Code fürs einlesen
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | Sub Matrix_Einlesen()
Dim x As Integer
Dim i As Integer
Dim j As Integer
Dim m As Integer
Dim n As Integer
For x = 1 To 5
m = Sheets( "Tabelle" & x).Cells(5, 2)
n = Sheets( "Tabelle" & x).Cells(5, 3)
ReDim Matrix(x, 1 To m, 1 To n)
For i = 1 To m
For j = 1 To n
Matrix(x, i, j) = Sheets( "Tabelle" & x).Cells(i + 7, j + 1)
Debug.Print "Matrix" ; x; "(" ; i; "," ; j; ")=" ; Matrix(x, i, j)
Next j
Next i
Next x
End Sub
|
Ich habe bereits versucht, im Modulkopf das Array Matrix() as Single zu deklarieren, aber alle Versuche auch nur ein einziges Element aus diesem erzeugten Array aufzugreifen, scheitern.
Ich würde gern ausdrücklich vermeiden, mittels Call die nächste Sub aufzurufen.
Hab Google und alle Vorlesungsunterlagen hoch und runter durchgeklappert und ich bin sicher, dass die Lösung wirklich simpel ist.
Vielen Dank Schonmal
|