У меня есть раскрывающийся список Form Control в моем листе Excel.Его входной диапазон является именованным диапазоном, который содержит другие именованные диапазоны.Я хотел, чтобы после изменения пользователь был перенаправлен на выбранный диапазон имен.У меня трудности с прямым получением выбранных диапазонов имен из выпадающего списка.Все, что я получаю, это список значений элемента управления dronwdown.Я решил обходной путь и выбрал подходящую ячейку из основного именованного диапазона, но мне интересно, должен ли быть способ напрямую получить строковое значение выбранного элемента.Вот мой код и тот, который я уже пробовал.
** это работает:
Sub GotoNames()
Dim rng As Range, T As Range
Set rng = ThisWorkbook.Sheets("Panel").Range("NamedRng")
On Error GoTo errr
Retry:
With ThisWorkbook.Sheets("Result").DropDowns(1)
Set T = rng(.Value)
Application.Goto T.Value2
End With
Exit Sub
errr:
If T.Worksheet.Visible = xlSheetHidden Then
T.Worksheet.Visible = xlSheetVisible
resume Retry
End If
End Sub
Но я хотел:
Sub GotoNames()
'On Error Resume Next
With ThisWorkbook.Sheets("Result").DropDowns(1)
Application.Goto .ControlFormat.List(.ControlFormat.ListIndex) 'OR
Application.Goto .ListFillRange(.value)
End With
End Sub