Получить список разделенных запятыми имен в кавычки проверки данных?

У меня есть список имен в VBA:

Dim names as Variant
vNames = GetNames with some function
'vNames(1) = "Joe"
'vNames(2) = "Sarah"
'vNames(3) = "Lisa"
'vNames(4) = "Erik"

Я хочу использовать их как альтернативы в полях данных, выпадающих во многих ячейках.

Как получить этот вариантный массив в полях данных?

1 ответ

Я бы предложил сделать ваш вариант массива строковым массивом и использовать следующее:

Sub CreateValidation()

Dim sNames() As String
Dim allNames As String

'sNames = GetNames with some function
sNames = Split("Joe,Sarah,Lisa,Erik", ",") 'Used as an example

allNames = Join(sNames, ",")

With Sheets("Sheet1").Range("A1:D10").Validation
 .Delete
 .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:=allNames
 .IgnoreBlank = True
 .InCellDropdown = True
 .InputTitle = ""
 .ErrorTitle = ""
 .InputMessage = ""
 .ErrorMessage = ""
 .ShowInput = True
 .ShowError = True
End With

End Sub

Заметки

  1. Замените "Sheet1" на ваше имя листа.
  2. Замените "A1: D10" своим диапазоном, который требует проверки.

licensed under cc by-sa 3.0 with attribution.