Ich versuche, Daten von einem Blatt zum anderen in Format zu übertragen, wie in den Abbildungen gezeigt. Die Länge der Daten in Blatt 1 ist unbekannt. Der Code, den ich verwende, wird die Daten in das richtige Format bringen, aber alle Daten enden als Daten aus der letzten Zeile.Schleife überträgt Daten aus der letzten Zeile nur
For b = 1 To l - 1 Step 1
For c = 0 To (l - 2) * 4 Step 4
idvalue = Sheet1.Cells(b + 1, 1).Value
Sheet3.Cells(c + 1, 2).Value = idvalue
namevalue = Sheet1.Cells(b + 1, 2).Value
Sheet3.Cells(c + 2, 2).Value = namevalue
amountvalue = Sheet1.Cells(b + 1, 3).Value
Sheet3.Cells(c + 3, 2).Value = amountvalue
commentsvalue = Sheet1.Cells(b + 1, 4).Value
Sheet3.Cells(c + 4, 2).Value = commentsvalue
Next c
Next b
Versuchen Sie diesen Code. Eine allgemeine Lösung, die die Größe Ihrer Tabelle nicht interessiert und Sie können sie auch immer für jede Tabelle verwenden, um sie in ein langes Format zu konvertieren. https://www.chicagocomputerclasses.com/convert-crosstab-table-database-list-table-excel-vba-macro-code/ – Masoud