簡體   English   中英

Excel VBA:如何在工作表上引用表單控件?

[英]Excel VBA: How do I refer to a Form Control, on a worksheet?

我在工作表中添加了兩個下拉列表(又名 ComboBox) 在此處輸入圖片說明

從這個問題開始( 如何使用變量名稱在工作表上引用控件對象? )我嘗試了以下實驗但沒有成功。

在此處輸入圖片說明

如何訪問 Excel 工作表上的控件? 我在哪里可以看到我剛剛插入的控件的名稱/屬性?

你可以這樣做:

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

我建議創建一個 Shape 變量,而不是像那樣添加它,並使用它來添加數據/屬性。

這樣的事情:

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

嘗試

Dim checkBox1 As Object
Set checkBox1 = Sheet1.OLEObjects("CheckBox1").Object
MsgBox checkBox1.Value

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM