Select the cells you want the DV to be applied and run this short macro:
Sub uniDV()
Dim r As Range
For Each r In Selection
With Selection.Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:=unik(Range("A1:H1"))
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With
Next r
End Sub
Public Function unik(rng As Range) As String
Dim c As Collection, r As Range
Set c = New Collection
On Error Resume Next
For Each r In rng
v = r.Value
c.Add v, CStr(v)
If Err.Number = 0 Then
unik = unik & "," & v
Else
Err.Number = 0
End If
Next r
On Error GoTo 0
unik = Mid(unik, 2)
End Function

The function constructs a comma-separated string and the sub applies the DV.