【发布时间】:2021-10-24 07:37:28
【问题描述】:
我想比较工作表 2 和工作表 1 中的单元格。
首先检查工作表 1 和 2 中区域 A 中的匹配单元格。
接下来,如果没有匹配项,则检查工作表 1 和 2 中区域 B 中的匹配单元格,否则,如果存在匹配项,则检查区域 A 中的下一个单元格。
如果也没有匹配项,请将工作表 2 中区域 A 和 B 中的这些不匹配单元格复制到新工作表 Worksheet 3。
这是我的工作表布局:
工作表 1 -
工作表 2 -
工作表 3 -
这是我的代码(未按预期工作):
Dim Cl As Range, Rng As Range, Dic As Object
Set Dic = CreateObject("scripting.dictionary")
With Dic
For Each Cl In MyWorkSheet1Name.Range("A2:B" & MyWorkSheet1Name.Range("B" & Rows.Count).End(xlUp))
.Item(Cl.Value) = Empty
Next Cl
For Each Cl In MyWorkSheet2Name.Range("A2:B" & MyWorkSheet2Name.Range("B" & Rows.Count).End(xlUp))
If Not .Exists(Cl.Value) Then
If Rng Is Nothing Then Set Rng = Cl Else Set Rng = Union(Rng, Cl)
End If
Next Cl
End With
If Not Rng Is Nothing Then
Rng.EntireRow.Copy MyWorkSheet3Name.Range("A" & Rows.Count).End(xlUp)
End If
如何让代码按预期运行?
非常感谢!
【问题讨论】:
标签: excel vba dictionary scripting