如何用vba获取相同单元格内容的联合单元格区域?

在用vba处理单元格数据时,会遇到相同的单元格内容需要批量处理的情况。

如下图所示

A列的品类含有多个相同项,如果要把相同项所在的单元格区域罗列出来,可以使用如下的代码:

Sub QQ1722187970()
    Dim oWK As Worksheet
    Set oWK = Excel.Worksheets("Sheet1")
    Dim oRng As Range
    With oWK
        iRow = .Range("a65536").End(xlUp).Row
    End With
    '定义字典对象变量
    Dim oDic As Object
    '创建字典对象
    Set oDic = CreateObject("Scripting.Dictionary")
    For i = 2 To iRow
        With oDic
            sKey = oWK.Cells(i, 1).Value
            If .exists(sKey) Then
                '添加相同单元格内容的单元格区域
                Set .Item(sKey) = Excel.Application.Union(.Item(sKey), oWK.Cells(i, 1))
            Else
                .Add sKey, oWK.Cells(i, 1)
            End If
        End With
    Next i
    arrKeys = oDic.keys
    For i = 0 To UBound(arrKeys)
        Set oRng = oDic.Item(arrKeys(i))
        Debug.Print oRng.Address
    Next i
End Sub

 

 

       

发表评论