如何在Excel列中查找多个重复值,并使用宏合并特定值的重复值

时间:2016-04-18 02:54:32

标签: vba excel-vba excel

我有一个要求, 我有一个Excel,其值为JIRA ID,缺陷ID,重复ID,重复

- 在JIRA ID列中,我有所有已标记链接JIRA ID的ALM缺陷ID。

- 我需要获取所有在JIRA ID列上标记了JIRA ID的ALM ID。

- 根据用(,)分隔的重复ID列上的相应JIRA ID输出。

- 将JIRA ID标记为重复

使用宏

列出Excel中对应JIRA id的重复ALM值

list the duplicate ALM values corresponding JIRA id in Excel using macro

1 个答案:

答案 0 :(得分:0)

您可以尝试以下内容

Option Explicit

Sub main()

Dim dataRng As Range, dbRng As Range, helperRng As Range, cell As Range, found As Range

Set dbRng = Worksheets("DefectConsoliation1").Cells(1, 1).CurrentRegion '<== check if it's your actual sheet name
Set dataRng = dbRng.Offset(1).Resize(dbRng.Rows.Count - 1)
Set helperRng = dbRng.Offset(dbRng.Rows.Count + 1, dbRng.Columns.Count + 1).Cells(1, 1)

dataRng.Columns(3).SpecialCells(xlCellTypeConstants, xlTextValues).Copy Destination:=helperRng

With helperRng.CurrentRegion
    If .Rows.Count > 1 Then .RemoveDuplicates Columns:=Array(1), Header:=xlNo
    For Each cell In .CurrentRegion
        Set found = dataRng.Columns(2).Find(what:=cell.Value, LookAt:=xlWhole, LookIn:=xlValues, MatchCase:=True)
        If Not found Is Nothing Then
            dbRng.AutoFilter field:=3, Criteria1:=cell.Value
            found.Offset(, 1).Resize(, 2) = Array(GetString(dataRng.Columns(1).SpecialCells(xlCellTypeVisible)), "duplicate")
            .AutoFilter
        End If
    Next cell
    .ClearContents
End With

End Sub

Function GetString(rng As Range) As String
Dim cell As Range

For Each cell In rng
    GetString = GetString & cell.Value & ","
Next cell
If Len(GetString) > 0 Then GetString = Left(GetString, Len(GetString) - 1)

End Function

它使用&#34;帮助&#34;范围,仅占用一列,从单元格的两列开始,在数据CurrentRegion下方的两行开始(即根据您的数据示例,&#34;帮助程序&#34;范围将来自单元格F19向下)。如果您在此类本地化数据中包含相关数据,则应相应地更改代码