У меня есть таблица в качестве источника данных.В зависимости от содержимого ячейки я выбираю данные, которые хочу включить в список проверки.Работает нормально, пока строка не превысила 255 символов.Я видел, что есть ограничение, что я могу использовать именованный диапазон вместо строки, разделенной запятыми, однако я не знаю, как это сделать из VBA.Я думаю, что я должен сделать что-то похожее на uppend.или, может быть, я могу создать именованный диапазон напрямую, избегая строки.Любая идея?
Пожалуйста, смотрите код функции:
Function GetPOholder()
Dim ws, ws1 As Worksheet
'Dim Source_PO_Holder As Range ', people As Range
Dim item As Variant
Dim test As Variant
Dim list, division As String
'change Sheet1 to suit
Set ws = ThisWorkbook.Worksheets("lists")
Set ws1 = ThisWorkbook.Worksheets("Sheet1")
division = ws1.Range("Division").value
Debug.Print "Division: " & division
ws1.Range("ordered_by").Validation.Delete 'delete previous validation
For Each item In ws.Range("name_ordered_by")
test = Application.WorksheetFunction.Index(ws.Range("Source_people_div"), Application.WorksheetFunction.Match(item, ws.Range("name_ordered_by"), 0))
If test = division Then
list = list & "," & item
Debug.Print test & " " & item
End If
Next
list = Right(list, Len(list) - 1)
ws1.Range("ordered_by").Validation.Add Type:=xlValidateList, Formula1:=list
End Function