Try this:
Sub UniqueList()
    Dim rng As Range, rng2 As Range
    Dim cell As Range, cell2 As Range
    Dim dict As Object, dict2 As Object
    Dim i As Long, j As Long
    Set dict = CreateObject("Scripting.Dictionary")
    Set dict2 = CreateObject("Scripting.Dictionary")
    Set rng = ActiveSheet.Range("A2", ActiveSheet.Cells(ActiveSheet.Rows.Count, "A").End(xlUp))
    Set rng2 = ActiveSheet.Range("B2", ActiveSheet.Cells(ActiveSheet.Rows.Count, "B").End(xlUp))
    For Each cell In rng
        If Not dict.exists(cell.Value) Then
            dict.Add cell.Value, i
            i = i + 1
        End If
    Next cell
    For Each cell2 In rng2
        If Not dict2.exists(cell2.Value) Then
            dict2.Add cell2.Value, j
            j = j + 1
        End If
    Next cell2
    With ActiveSheet.Range("D4").Validation
        .Delete
        .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Formula1:=Join(dict.keys, ",")
    End With
    With ActiveSheet.Range("F4").Validation
        .Delete
        .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Formula1:=Join(dict2.keys, ",")
    End With
End Sub