我有一个csv文件,其中包含4个ID字段(ID_1,ID_2,ID_3,ID_4)。这4个字段的组合在文件中是唯一的。问题是我正在尝试创建与4中任何一个相关联的所有ID的宽列表,并且在其他行中存在具有附加ID或空格的匹配。我想创建一个数据集,查找任何这些ID字段之间的匹配项,并为每个其他唯一值添加一列,以创建关联ID的完整列表。 合并应删除任何ID的重复。
答案 0 :(得分:1)
我相信您的目标是合并ID匹配的任何行中的项目。我想出了一些解决这个问题的代码,但意识到这可能不是最好的方法,所以我不再追求它了。就目前而言,它假设ID行从纸张的左上角开始,并且代码仅用红色着色那些重复的ID。我在整个代码中放置了.select
个语句,因此您可以逐步完成它,看看它是如何工作的。
但是如果你想继续,你可以添加代码来合并那些细胞红色的点。如果您这样做,请删除所有.select
语句。
Option Explicit
Sub repeatedIDs()
Dim r As Range, cell As Range, remainingRows As Range
Dim lastRow As Range, i As Integer, j As Integer
Set r = Range("A2")
Set r = Range(r, r.End(xlDown).Offset(0, 3))
r.Select
Set lastRow = r.Rows(r.Rows.Count)
lastRow.Select
For i = 1 To r.Rows.Count - 1
Set remainingRows = Range(r(i + 1, 1), r(r.Rows.Count, 4))
remainingRows.Select
For j = 1 To 4
For Each cell In remainingRows
cell.Select
If cell = r(i, j) And cell <> "" And r(i, j) <> "" Then
'***** color cells with same ID red *****
cell.Font.Color = vbRed
r(i, j).Font.Color = vbRed
End If
Next cell
Next j
Next i
End Sub