Excel VBA: как мне обратиться к элементу управления формы на листе? - PullRequest
0 голосов
/ 24 октября 2018

Я добавил два раскрывающихся списка (он же ComboBox) на лист enter image description here

Начиная с этого вопроса ( Как мне ссылаться на объект управления налист с использованием имени переменной? ) Я попытался следующий эксперимент безуспешно.

enter image description here

Как получить доступ к элементам управления в ExcelПростынь?И где я вижу имя / свойства только что вставленных элементов управления?

Ответы [ 2 ]

0 голосов
/ 24 октября 2018

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

Что-то вроде this :

Sub t()
Dim newDD As Shape

Set newDD = ActiveSheet.Shapes.AddFormControl(xlDropDown, Left:=Cells(1, 1).Left, Top:=Cells(2, 1).Top, Width:=100, Height:=20)
 With newDD
        .ControlFormat.DropDownLines = 2
        .ControlFormat.AddItem "Item 1", 1
        .ControlFormat.AddItem "item 2", 2
        .Name = "New Combo Box"
        .OnAction = "myCombo_Change"
 End With

End Sub
0 голосов
/ 24 октября 2018

Вы можете сделать что-то вроде этого:

Sub DropDown1_Change()

    Dim s As Object
    Set s = ActiveSheet.Shapes(Application.Caller)
    Debug.Print s.ControlFormat.Value

End Sub

Application.Caller содержит имя фигуры, "содержащей" элемент управления формы

Аналогично, вы можете получить доступ к другим элементам управления по имени:

Dim myName as String, c As Object
myName = "List Box 2"
Set c = ActiveSheet.Shapes(myName).ControlFormat
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...