答案1
根据所附的屏幕截图,我发现您有两个 VBA 宏,并且您正在尝试比较两列并将不匹配的值复制到另一张表中。
为此,您需要将两个宏合并为一个。
我想建议一种方法,将比较源表中的两列中不匹配的值,然后将数据复制到另一张表中。
宏将在行上应用颜色格式,并在复制后反转两列的格式。
Sub HighlightColumnDifferences()
Dim bothcolumns As Range, i As Integer
Set bothcolumns = Selection
With bothcolumns
For i = 1 To .Rows.Count
If Not StrComp(.Cells(i, 1), .Cells(i, 2), vbBinaryCompare) = 0 Then
Range(.Cells(i, 1), .Cells(i, 2)).Interior.ColorIndex = 6
End If
Next i
End With
Call Copy
Application.CutCopyMode = False
End Sub
Sub Copy()
Dim i As Long
For i = 1 To 10
If Sheets("Sheet1").Range("A" & i).Interior.ColorIndex = xlNone Then
Range("A" & i).Copy Destination:=Sheets("Sheet2").Range("A" & Rows.Count).End(xlUp).Offset(1)
End If
If Sheets("Sheet1").Range("B" & i).Interior.ColorIndex = xlNone Then
Range("B" & i).Copy Destination:=Sheets("Sheet2").Range("B" & Rows.Count).End(xlUp).Offset(1)
End If
Next i
Worksheets("Sheet1").Activate
Range("A1:B10").ClearFormats
Application.CutCopyMode = False
End Sub
怎么运行的:
- 复制&粘贴两种代码均为标准模块。
- 从中的两列中选择
Sheet 1
要比较的数据。 - 跑步
HighlightColumnDifferences
宏。
注意:
- 您可以选择任意两列进行比较,而不仅仅是 A 和 B。
- 您可以调整第二个宏中的
For i = 1 To 10
、Sheet Name
和数据范围的值。A1:B10