Вот небольшой трюк, который я использовал, в этом «списке» есть ArrayList:
Dim ValidateList As String
For Each x In list
ValidateList = ValidateList + x + Chr(44)
Next
With Sheets(yoursheet).Range(yourCell).Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:=ValidateList
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With
Может показаться немного грубым, но я думаю, что это работает без проблем:)