答え1
添付のスクリーン ショットに基づいて、2 つの VBA マクロがあり、2 つの列を比較して一致しない値を別のシートにコピーしようとしていることがわかりました。
このためには、2 つのマクロを 1 つに結合する方法が必要です。
ソース シート内の 2 つの列を比較して一致しない値を探し、そのデータを別のシートにコピーする方法を提案したいと思います。
マクロは行に色の書式を適用し、コピー後に両方の列の書式を反転します。
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 だけでなく、任意の 2 つの列を選択して比較することもできます。
- 2 番目のマクロで、
For i = 1 To 10
およびSheet Name
データ範囲の値を調整できます。A1:B10