2014-06-25 35 views
1

我有八列数据。有500行。它们按列a然后b排序。VBA - 两列值更改的新项目

所以它看起来像这样:

1111|1536|Data... 
1111|1536|Data... 
1111|1537|Data... 
1112|1536|Data... 
1112|1536|Data... 
1112|1536|Data... 
1112|1536|Data... 
1112|1536|Data... 
1112|1537|Data... 

我无法写在第九个栏开始列和b变化到不同的东西组合后重编行代码。所以我想它看起来就像这样:

Item 1|1111|1536|Data... 
Item 2|1111|1536|Data... 
Item 1|1111|1537|Data... 
Item 1|1112|1536|Data... 
Item 2|1112|1536|Data... 
Item 3|1112|1536|Data... 
Item 4|1112|1536|Data... 
Item 1|1112|1537|Data... 
Item 2|1112|1537|Data... 

我不能骨料仅基于这两个列,因为所有八个数据创建一个独特的组合,我需要保留该组合。

回答

0

下面是我用什么:

Sub Item() 
Dim ItemVar As String 
Dim ColAVar As String 
Dim ColBVar As String 
Dim n As Integer 
Dim i As Integer 

ItemVar = "Item " 
n = 1 

ThisWorkbook.Sheets(1).Range("A1").Select 
ActiveCell.EntireColumn.Insert 
ActiveCell.Value = ItemVar & CStr(n) 

For i = 1 To 499 
    ColAVar = ActiveCell.Offset(0,1).Value 
    ColBVar = ActiveCell.Offset(0,2).Value 
    ActiveCell.Offset(1, 0).Select 

    IF ActiveCell.Offset(0,1).Value = ColAVar And ActiveCell.Offset(0,2).Value = ColBVar Then 
     n = n + 1 
    ELSE 
     n = 1 
    End If 

    ActiveCell.Value = ItemVar & CStr(n) 
Next i 
End Sub