2017-05-29 7 views
0

私は、次のVBAピボット形式

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

のように優れていると私はそれがピボットのような形式を持っているしたいと思い、それが正確に最後の行の下にある:

この私のために
A 
6 aaa 
7 123555 
8 234555 
9 bbb 
10 345555 
11 444555 
12 555555 

ループを使用する

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 

NextRowは、次の行に移動していることを確認します。しかし、結果が唯一のためエラーが発生しました。

A 
6 aaa 
7 bbb 

このコードの中の任意の解決策はありますか?おかげ

答えて

2

は私の実際のコードではほとんど変更はなく、コンセプトの作品を必要とするこの

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

を試してみてください。ありがとう – Elbert

関連する問題