答案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