簡體   English   中英

以編程方式在VBA(Excel)中添加ComboBox

[英]Programmatically add ComboBox in VBA (Excel)

我正在嘗試在VBA中創建,放置和填充ComboBox的元素。 我不明白我錯過了什么,但我不知道該怎么做。 我的API中沒有 MSForms (即我無法將Dim someComboBox As MSForms.ComboBoxDim someComboBox As MSForms.ComboBox因為它失敗了。是否有可能以某種方式導入它?有人能指出我正確的方向嗎?

我想要實現的是,當用戶單擊一個按鈕時,會創建一個包含各種項目(ComboBoxes,RadioButtons等)的新表單,因此我想以編程方式執行此操作。

您可以依賴以下代碼:

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

您需要對Microsoft Forms 2.0對象庫的引用。 一種簡單的方法是在項目中插入UserForm。

或者,在“工具/參考”對話框中找到此參考。

您可以以編程方式創建一個UserForm,一個ComboBox等,但是只需插入一個UserForm並將其隱藏起來直到需要它會更容易。 如果需要,您還可以以編程方式向其添加新控件。

添加表單對象庫不會使您創建全新的表單和控件。 您需要Microsoft Visual Basic for Applications Extensibility庫。 這個鏈接很舊,但仍然相關。

暫無
暫無

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

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