Der Debug-Output spuckt unterschiedliche Arrays aus
Nicht ein einziges Array "spuckt" der Debug-Output aus. Es werden einzelne Werte verkettet im Direktfenster ausgegeben.
Praktisch um inmitten der Lösungsfindung Meilensteine zu setzen.
Dim MatrixArr As Integer
Dim Z, r, c As Integer
Sascha, das sieht herb aus.
Der Datentyp Integer ist Deinem Fall ohnehin falsch gewählt.
Die Variablen Z und r werden so als Variant und nicht als Integer deklariert.
MatrixArr wird so nicht als Array deklariert.
Ich denke da fehlt es ziemlich an den Basics.
Hier ein paar Links - solltest Dir zu Gemüte führen
Visual Basic für Applikationen - Das VBA-Tutorial
WiseOwlTutorials - YouTube
VBA Articles - Excel Macro Mastery
Anmerkungen:
Mase:
Set rngZeilen = Range("A2:A5")
Sascha:
Set rngZeilen = Range("A1:AA5")
Frage:
WTF?
Weitere Anmerkungen:
Dass Du meine innere Schleife so verschandelt hast sollte Ich Dir persönlich nehmen ;)
Auch da: Sieht aus wie im wilden Westen.
By the way: Mein Testergebnis war mit Deinem händisch eingetragenen Zielzustand deckungsgleich.
Weiter im Programm:
Schau Dir mal folgende Lösung (ohne Array) an.
Es wird ein neues Arbeitsblatt erzeugt und das Ergebnis da reingeschrieben.
Habe Dir ausführlich kommentiert, sodass leserlicher und sich besser nachvollziehen lässt.
Sub MatrixInListe()
'*** Deklarationsteil
Dim cZeilen As Excel.Range
Dim cSpalten As Excel.Range
Dim rngZeilen As Excel.Range
Dim rngSpalten As Excel.Range
Dim wksQuellBlatt As Excel.Worksheet
Dim wksErgbnisblatt As Excel.Worksheet
'*** Definitionsteil
Set wksQuellBlatt = Tabelle1 '*** Referenz auf das Quellarbeitsblatt in einer Objektvariablen ablegen
Set wksErgbnisblatt = ThisWorkbook.Worksheets.Add '*** Referenz auf das Ergebnisblatt ablegen und gleich eins anlegen
Set rngZeilen = wksQuellBlatt.Range("A2:A5") '*** Referenz auf die Zeile A2 bis A5
Set rngSpalten = wksQuellBlatt.Range("B1:AA1") '*** Referenz auf die Spalten B1 bis AA1
'*** ab hier Wertzuweisungen usw möglich
wksErgbnisblatt.Name = "Ergebnis" '*** selbsterklärend
For Each cZeilen In rngZeilen
For Each cSpalten In rngSpalten
'Debug.Print cZeilen.Value & vbTab & cSpalten.Value & vbTab & cZeilen.Offset(0, cSpalten.Column - 1).Value <~~ Meilenstein
With wksErgbnisblatt
With .Cells(.Rows.Count, 1).End(xlUp)
.Offset(1, 0).Value = cZeilen.Value
.Offset(1, 1).Value = cSpalten.Value
.Offset(1, 2).Value = cZeilen.Offset(0, cSpalten.Column - 1).Value
End With
End With
Next cSpalten
Next cZeilen
End Sub
|