我有一个要求, 我有一个Excel,其值为JIRA ID,缺陷ID,重复ID,重复
- 在JIRA ID列中,我有所有已标记链接JIRA ID的ALM缺陷ID。
- 我需要获取所有在JIRA ID列上标记了JIRA ID的ALM ID。
- 根据用(,)分隔的重复ID列上的相应JIRA ID输出。
- 将JIRA ID标记为重复
答案 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向下)。如果您在此类本地化数据中包含相关数据,则应相应地更改代码