|
▼Yoshim さん:
不具合原因そのものは2番目、3番目のセルにシート修飾がないことです。
If Ws1.Cells(i, 1) & Ws1.Cells(i, 2) & Ws1.Cells(i, 3) = _
Ws2.Cells(k, 1) & Ws2.Cells(k, 2) & Ws2.Cells(k, 3) Then
で、通常はこれでいいと思いますが、文字連結した値を比較する場合
AA と ABB、AAA と BB。これらは共に AAABB となって同じと見なされます。
ですから、【セル内には登場しないと思われる特殊文字】を間に挟んで比較するのが
安全確実です。処理前にシート1の色を無色にすることも加えて、たとえば以下。
Sub Sample()
Dim i As Long, k As Long
Dim RowEnd1 As Long
Dim RowEnd2 As Long
Dim Ws1 As Worksheet
Dim Ws2 As Worksheet
Dim s1 As String, s2 As String
Set Ws1 = Sheets(1)
RowEnd1 = Ws1.Cells(Rows.Count, 1).End(xlUp).Row
Set Ws2 = Sheets(2)
RowEnd2 = Ws2.Cells(Rows.Count, 1).End(xlUp).Row
Ws1.Cells.Interior.ColorIndex = xlNone
For i = 2 To RowEnd1
For k = 2 To RowEnd2
s1 = Ws1.Cells(i, 1) & vbTab & Ws1.Cells(i, 2) & vbTab & Ws1.Cells(i, 3)
s2 = Ws2.Cells(k, 1) & vbTab & Ws2.Cells(k, 2) & vbTab & Ws2.Cells(k, 3)
If s1 = s2 Then Exit For
Next k
If k > RowEnd2 Then
Ws1.Cells(i, 1).Interior.ColorIndex = 34
End If
Next i
End Sub
|
|