Ich habe ein Problem bei der Ausführung meines VBA-Makros, das ich geschrieben habe, um ein Dataset zu transponieren. Das Hauptziel besteht darin, diesen Datensatz Zeile für Zeile zu übernehmen und ihn so zu transponieren, dass die Spalten B: K neue Zeilen sind. HierKopieren Einfügen VBA-Schleife
ist eine Probe von dem, was ich zu tun versucht:
http://i.imgur.com/4ywn17m.png
ich folgende VBA geschrieben habe, aber alles was man tut, ist im Grunde eine „Schatten Reihe“ in einem neuen Blatt zu schaffen , was ich nicht will.
Sub LoopPaste()
Dim i As Long
Dim firstRow As Long
Dim lastRow As Long
Dim wb As Workbook
Dim sheet1 As Worksheet
Dim sheet2 As Worksheet
Set wb = ThisWorkbook
Set sheet1 = wb.Sheets("Sheet1")
Set sheet2 = wb.Sheets("Sheet2")
'Find the last row with data
lastRow = sheet1.Range("A:A").Find("*", searchdirection:=xlPrevious).Row
'This is the beginning of the loop
For i = firstRow To lastRow
'Copying Company
sheet2.Range("A" & i) = sheet1.Range("A" & i).Value
'Copying Employees
sheet2.Range("B" & i) = sheet1.Range("B" & i).Value
sheet2.Range("B" & 1 + i) = sheet1.Range("C" & i).Value
sheet2.Range("B" & 2 + i) = sheet1.Range("D" & i).Value
sheet2.Range("B" & 3 + i) = sheet1.Range("E" & i).Value
Next i
End Sub
Wie bekomme ich die Schleife, um eine neue Zeile für jeden Mitarbeiter zu erstellen?
Sie konnten die 'Offset()' Methode 'Range' verwenden. Um Zeilen in Spalten und umgekehrt zu transponieren, muss etwas, das sich bei "Offset (i, j)" von der oberen linken Seite des Quellbereichs befindet, auf "Offset (j, i)" von oben links des Zielbereichs gehen . – jsheeran
I würden zustimmen @jsheeran es am einfachsten zu Schleife durch die Säulen und in ein neues Bogenoffset wäre unter Verwendung von ThisWorkbook.Cells (Sheet1.Rows.Count, 1) .End (xlUp) .Offset (1, 0) = .Wert positionInLoop (i) –
Coole Punkte, wenn Sie zuerst in einem Array speichern und dann auf dem Blatt ablegen! : D –