2

2 つの別々のシートの値を比較する必要があります。どちらも 2 から始まる H 列にあります。それが最終であり、データではない場合は、最終で強調表示します。データで見つかったものが最終にない場合は、下部の最終 (行全体) にコピーします。すべてテキストです。列 H のタイトルは「参照」です。

4

1 に答える 1

0

コード 1

Private Sub Worksheet_Change(ByVal Target As Range)

    Application.EnableEvents = False
    If Target.Column <> 8 Then Exit Sub

    Dim lastRow As Long
    Dim rng As Range, cell As Range

    lastRow = Range("H" & Rows.Count).End(xlUp).Row
    If lastRow < 2 Then lastRow = 2

    Set rng = Range("H2:H" & lastRow)

    For Each cell In rng

        With Sheets("data")
            a = Application.VLookup(cell.Value, .Range("H2:H" & .Range("H" & Rows.Count).End(xlUp).Row), 1, 0)

            If IsError(a) Then
                cell.Interior.Color = vbYellow
                Else
                cell.Interior.Color = xlNone
            End If
        End With

    Next

    Application.EnableEvents = True
End Sub

コード 2

Private Sub Worksheet_Change(ByVal Target As Range)

    Application.EnableEvents = False
    If Target.Column <> 8 Then Exit Sub

    Dim lastRow As Long
    Dim rng As Range, cell As Range

    lastRow = Range("H" & Rows.Count).End(xlUp).Row
    If lastRow < 2 Then lastRow = 2

    Set rng = Range("H2:H" & lastRow)

    For Each cell In rng

        With Sheets("final")
             a = Application.VLookup(cell.Value, .Range("H2:H" & .Range("H" & Rows.Count).End(xlUp).Row), 1, 0)

            If IsError(a) Then
               cell.Copy .Range("H" & .Range("H" & Rows.Count).End(xlUp).Row)
            End If
        End With

    Next

    Application.EnableEvents = True
End Sub

ここに画像の説明を入力

于 2013-06-04T19:18:50.530 に答える