Если вы хотите использовать данные проверки для создания списка, это невозможно, вы получите сообщение об ошибке:вы не можете использовать ссылочные операторы (такие как объединения, пересечения и диапазоны) или константы массива для критериев условного форматирования.
Поэтому я предлагаю вам попробовать использовать код в качестве обходного пути, чтобы помочь вам решить эту проблему.
Sub SetDataValidation() '
Dim WS As Worksheet
Set WS = Worksheets("Sheet1")
Dim rng As Range
'get range of named range
Set rng = WS.Range("NUMBER")
Dim ARR As Variant
ReDim ARR(1 To 1) As Variant
'add cell value from named range to an array
For i = 1 To rng.Cells.Count
ARR(UBound(ARR)) = rng.Cells(i).Value
ReDim Preserve ARR(1 To UBound(ARR) + 1) As Variant
Next i
'add your predefined value to the array
ARR(UBound(ARR)) = 17
'set validation for B1 with the combined array
With WS.Range("B1").Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:=Join(ARR, ",")
End With
End Sub
В моем примере я назвал диапазон как NUMBER и получил результат: