For Dictionaries, have a read of this

Resize expands a range to a different area. In this case, from 1 cell to 3 cells horizontally.
Instead of Cells(i, 1).Resize(, 3) I might have used Range(Cells(i,1), Cells(i,3))

Range("A1").Resize(4,4) => Range("A14")


The # is used as a separator when joining cells to avoid accidental duplicates
eg join 123, 456, 789 =>123456789 : with separator 123#456#789
join 12, 345, 6789 =>123459789 : with separator 12#345#6789




Sub Test()    Dim LRw As Long
    Dim arr()
    Dim dic1, dic2
     
    Set dic1 = CreateObject("Scripting.Dictionary")
    Set dic2 = CreateObject("Scripting.Dictionary")
     
    LRw1 = Cells(Rows.Count, 1).End(xlUp).Row
    'Add row number as key and concatenated cells as value; Area1
    For i = 3 To LRw1
        dic1.Add i, Cells(i, 1) & "#" & Cells(i, 2) & "#" & Cells(i, 3)
    Next i
    LRw2 = Cells(Rows.Count, 6).End(xlUp).Row
    'Add row number as key and concatenated cells as value; Area2
    For i = 3 To LRw2
        dic2.Add i, Cells(i, 6) & "#" & Cells(i, 7) & "#" & Cells(i, 8)
    Next i
     
    'Loop through keys from last to first in Area1
    For i = LRw1 To 3 Step -1
        dup = False
        For Each kk In dic2.keys
            If dic1(i) = dic2(kk) Then
                ' If Dup found, clear Area2 cells
                Cells(kk, 6).Resize(, 3).ClearContents
                'Set flag value
                dup = True
            End If
        Next kk
        'If dup found, delete row from Area1
        If dup Then Cells(i, 1).Resize(, 3).Delete shift:=xlUp
    Next i
    'Loop through Area2 from bottom and delete blank cells
    For i = LRw2 To 3 Step -1
        If Cells(i, 6) = "" Then Cells(i, 6).Resize(, 3).Delete shift:=xlUp
    Next i
End Sub