我正在努力弄清楚如何将其组合在一起,并可能需要一些帮助。我正在处理一个非常大的报告,而手动执行任何一项操作根本不是一种选择。
在最简单的解释中,我需要查找列中存在重复值的实例(Col J),并查看包含重复值的第一行。然后从另一列(Col F)复制该值,然后将其粘贴到在Col J中包含重复项的所有其他行中。
为了说明,如果报告看起来像这样:
+-----------------+--------------+
| Col F | Col J |
+-----------------+--------------+
| Value 1 | 1111 |
| Value 2 | 1111 |
| Value 3 | 2222 |
| Value 4 | 3333 |
| Value 5 | 1111 |
| Value 6 | 3333 |
| Value 7 | 3333 |
| Value 8 | 4444 |
| Value 9 | 4444 |
+-----------------+--------------+
之后我需要它看起来像这样:
+-----------------+--------------+
| Col F | Col J |
+-----------------+--------------+
| Value 1 | 1111 |
| Value 1 | 1111 |
| Value 3 | 2222 |
| Value 4 | 3333 |
| Value 1 | 1111 |
| Value 4 | 3333 |
| Value 4 | 3333 |
| Value 8 | 4444 |
| Value 8 | 4444 |
+-----------------+--------------+
有什么建议吗?
答案 0 :(得分:1)
要就地做,请使用字典:
Sub rplc()
Dim dict As Object
Set dict = CreateObject("Scripting.Dictionary")
With Worksheets("Sheet5") 'Change to your sheet name
Dim lstrow As Long
lstrow = .Cells(.Rows.Count, 10).End(xlUp).Row
Dim i As Long
For i = 2 To lstrow
If dict.exists(.Cells(i, 10).Value) Then
.Cells(i, 6).Value = dict(.Cells(i, 10).Value)
Else
dict.Add .Cells(i, 10).Value, .Cells(i, 6).Value
End If
Next i
End With
End Sub