识别和组合多个细胞

时间:2014-04-24 11:35:45

标签: excel excel-vba excel-2010 vba

我正在尝试编写一个宏,它将在一列中选择相同的所有值,移过两列,然后将这些单元格中的所有数据合并为一列。然后我需要重复它直到所有内容结合起来。

1     122
1     121
2     351
3     351
3     352
4     176
9.1   350
10    351
10    352

如果这是我们的原始数据,我需要在第一列中选​​择1的所有值,将我的选择偏移两列,然后将这些单元格合并为一列。然后我需要在A列上运行重复功能以删除所有备用单元格并给出一个直接列表。我希望它看起来像这样:

1     122, 121
2     351
3     351, 352
4     176
9.1   350
10    351, 352

这个问题是,对于A列中的未知数量的值(因为我们有不同数量的组)和B列(因为每个组具有不同数量的值),这需要发生未知次数的未知次数在它。

任何帮助都会受到大力赞赏。

谢谢,

Allan Ramsay

1 个答案:

答案 0 :(得分:0)

尝试一下,它有单独的输入和输出表:

Sub RePackage()
    Dim N As Long, K As Long, i As Long
    Dim s1 As Worksheet
    Dim s2 As Worksheet
    Set s1 = Sheets("Sheet1")
    Set s2 = Sheets("Sheet2")
    s2.Range("B:B").NumberFormat = "@"
    N = s1.Cells(Rows.Count, "A").End(xlUp).Row
    s2.Cells(1, 1).Value = s1.Cells(1, 1).Value
    s2.Cells(1, 2).Value = s1.Cells(1, 2).Text
    v = s1.Cells(1, 1).Value
    K = 1
    For i = 2 To N
        If s1.Cells(i, 1).Value = v Then
            s2.Cells(K, 2).Value = s2.Cells(K, 2).Text & "," & s1.Cells(i, 2).Text
        Else
            K = K + 1
            s2.Cells(K, 1).Value = s1.Cells(i, 1).Value
            s2.Cells(K, 2).Value = s1.Cells(i, 2).Text
            v = s1.Cells(i, 1).Value
        End If
    Next i
End Sub