2017-05-29 2 views
0

I zeichnen sich haben wie die folgendeVBA Verschwenkung Format

A |  B 
1 aaa |  123555 
2 aaa |  234555 
3 bbb |  345555 
4 bbb |  444555 
5 bbb |  555555 

Und ich möchte es Format wie Pivot machen, und es ist genau unterhalb der letzten Zeile:

A 
6 aaa 
7 123555 
8 234555 
9 bbb 
10 345555 
11 444555 
12 555555 

Zu diesem I Looping verwenden

NextRow = Worksheets("Sheet1").Range("A" & Rows.Count).End(xlUp).Row 

for i = 1 to 5 
    Cells(i + NextRow,A).value = cells(i,A).value 
    NextRow = NextRow + 1 

     for j = 1 to 5 
     if cells(j,A).value = "aaa" Then 
     cells(i + Nextrow, A) = Cells (j,2).value 
     Nextrow = NextRow + 1 

     end if 
     next j 
next i 

Der NextRow soll sicherstellen, dass er in die nächste Zeile wechselt. Aber ich habe Fehler, da das Ergebnis nur ist:

A 
6 aaa 
7 bbb 

Jede Lösung in diesem Code? Dank

Antwort

2

Versuchen Sie, diese

Sub T() 

    Dim sht As Worksheet, NextRow As Long, CurrVal, PrevVal 
    Dim i As Long 

    Set sht = Worksheets("Sheet1") 

    NextRow = sht.Range("A" & Rows.Count).End(xlUp).Row + 1 
    PrevVal = "~~~~~~~~~~~~" 

    For i = 1 To NextRow - 1 

     CurrVal = sht.Cells(i, "A").Value 
     If CurrVal <> PrevVal Then 
      sht.Cells(NextRow, "A").Value = CurrVal 
      PrevVal = CurrVal 
      NextRow = NextRow + 1 
     End If 
     sht.Cells(NextRow, "A").Value = sht.Cells(i, "B").Value 
     NextRow = NextRow + 1 

    Next i 


End Sub 
+0

eine kleine Änderung in meinem realen Code benötigen, aber das Konzept funktioniert. Vielen Dank – Elbert

Verwandte Themen