我有两张包含许多行和列的 Excel 工作表。表 1 是基线表,表 2 是新数据表。我想比较两个工作表并查看工作表 2 中缺少哪些数据以及工作表 2 中添加了哪些新数据。当在工作表 2 中添加/删除任何行时,这些行的值将不匹配。
作为第一步,我创建了一个宏来连接 Col A 到 E,并在两张纸上显示 Col H 中的结果。现在我需要在工作表 3 中创建一个宏,它将比较两个工作表中的 Col H,并将结果显示为缺失数据 (Sheet3:Col C) 和新数据 (Sheet3:Col D)。(Sheet3:Col A) 和 (Sheet3:Col B) 将分别是来自 Sheet 1 和 Sheet 2 的串联 COL H。我目前有一个宏,即使零件存在于表 1 中,它也会显示误报。
Sub MacroCompare()
'
' MacroCompare Macro
'
'
Sheets("baseline").Select
Range("H1").Select
ActiveCell.FormulaR1C1 = "baseline"
Columns("H:H").Select
Selection.Copy
Sheets("Comparison").Select
Columns("A:A").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("baselinecopy").Select
Columns("A:A").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("test").Select
Range("H1").Select
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = "test"
Columns("H:H").Select
Selection.Copy
Sheets("Comparison").Select
Columns("B:B").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("testcopy").Select
Columns("A:A").Select
Range("A43").Activate
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("Comparison").Select
Range("C1").Select
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = "missing"
Range("D1").Select
ActiveCell.FormulaR1C1 = "extras"
Range("C2").Select
ActiveCell.FormulaR1C1 = _
"=VLOOKUP(baselinecopy!RC[-2],testcopy!R2C1:R7443C1,1,FALSE)"
Range("C2").Select
Selection.AutoFill Destination:=Range("C2:C7443")
Range("C2:C7443").Select
Range("D2").Select
ActiveCell.FormulaR1C1 = _
"=VLOOKUP(testcopy!RC[-3],baselinecopy!R2C1:R7443C1,1,FALSE)"
Range("D2").Select
Selection.AutoFill Destination:=Range("D2:D7443")
Range("D2:D7443").Select
End Sub