#excel #vba #combobox #cell
#excel #vba #выпадающий список #ячейка
Вопрос:
Я создаю выпадающий список со списком из выбранных ячеек с помощью VBA. Как мне получить адрес (пример A1) выбранного элемента списка (ячейка источника элементов списка) с помощью VBA?
Ответ №1:
Вот так… Это одна из тех непонятных вещей. ListFillRange
Свойство здесь предназначено для OLEObject
встроенного в Shape("Drop Down 1")
Sub FillComboRange()
Dim Cb As Object
Set Cb = ActiveSheet.Shapes("Drop Down 1").OLEFormat.Object
Cb.ListFillRange = "D16:N30"
Set Cb = Nothing
End Sub
и если вам нужна строка диапазона, просто сделайте:
Sub GetComboRange()
Dim Cb As Object, Str as String
Set Cb = ActiveSheet.Shapes("Drop Down 1").OLEFormat.Object
Str = Cb.ListFillRange
MsgBox(Str)
Set Cb = Nothing
End Sub
В частности, для выбранной ячейки адрес может быть задан с помощью Cb.LinkedCell
, а параметры затенения задаются с помощью Cb.Display3DShading
Комментарии:
1. Я улучшаю, что у меня уже есть диапазон, в котором можно выбирать элементы списка. Мне не нужно это объявлять. Мне нужно вернуть адрес выбранному элементу. Адрес ячейки, в которой этот элемент был добавлен в список.
2. да, тогда просто объявите некоторую строку и получите
Str = Cb.ListFillRange
3. Привет, я получу пустой почтовый ящик / Strig
4. Привет. Самое сложное в этом вопросе — определить ole-объект. Как только это будет сделано, пожалуйста, попробуйте немного изменить код в соответствии с вашей программой. Спасибо