2015-11-05 44 views
0

我想创建代码,通过给他们一个名称来将另一个列中的每个元素分组。例如:将我的元素在列中分组

Year: colour: 
2015  blue 
2014  red 
2003  yellow 
2011  blue 
2006  red 

如果年份是20152011给的颜色必须是“蓝色”,如果年份是20142006颜色必须是“红色”。

+0

我建议先在第二列开始一个循环...虽然没有捕捉任何双打......稍后你可以建立一张桌子,而每个标题都是唯一的(红色,蓝色......) –

+0

是的,我绝对会去为它,我不用VB代码,所以我可能可以精炼一个代码,但创建一个全新的将是艰难的,我该如何开始? –

+0

'对于给定范围的每个...'。并为每个项目(除第一个)检查它的目标数组... –

回答

0

假设罢了不会发生,我只是写一个解决方案:

Sub test() 
    Dim c As Range, i As Long 
    Set c = Cells(1, 4) 
    For i = Cells(Rows.Count, 1).End(xlUp).Row To 2 Step -1 
    Do 
     If Len(c.Value) = 0 Then 
     c.Value = Cells(i, 2).Value: c.Offset(1).Value = Cells(i, 1).Value: Exit Do 
     ElseIf c.Value = Cells(i, 2).Value Then 
     Cells(Cells(Rows.Count, c.Column).End(xlUp).Row + 1, c.Column).Value = Cells(i, 1).Value: Exit Do 
     Else 
     Set c = c.Offset(, 1) 
     End If 
    Loop Until Len(c.Offset(, -1).Value) = 0 
    Set c = Cells(1, 4) 
    Next 
End Sub 

由于这个答案已经被调整到只有解决了这个问题,它需要调整任何不同......