【问题标题】:Create ComboBox's and AddItems to them all within the VBA code在 VBA 代码中创建 ComboBox 并向它们添加项目
【发布时间】:2018-03-14 08:11:04
【问题描述】:

我需要创建 ComboBox,然后为每个 ComboBox 创建 AddItems。这一切都将在用户表单中完成。我需要完全在 VBA 代码中执行此操作,这是因为每次打开用户窗体时都会显示新信息。

这是我目前所拥有的:

    Private Sub UserForm_Initialize()

    for i = 1 to size
    Set CmbBX = Me.Controls.Add("Forms.ComboBox.1")
        CmbBX.Top = ((90 * i) - 18) + 12 + 20
        CmbBX.Left = 30
        CmbBX.Text = "Please select an item from the drop down"
        CmbBX.TextAlign = fmTextAlignCenter
        CmbBX.Width = 324
        CmbBX.Visible = False
        CmbBX.Name = "ComBox2" & i

    Next
    end sub

问题是,一旦创建了每个 ComboBox,它的名字就不再存在了。我无法引用组合框。这是我尝试过的:

ComBox21.AddItems "Test1"
ComBox22.AddItems "Test2"

它会出错。当我查看屏幕顶部的 UserForms 功能栏时(例如,我通常会选择 ComBox22_Change()),它表明甚至不存在 ComboBox!

关于如何动态创建和添加项目到组合框的任何想法?

提前谢谢你

【问题讨论】:

标签: vba excel


【解决方案1】:

这里是代码示例。

您仍然需要根据需要进行更改,但这很容易。

我创建了一个简单的用户表单和一个按钮来进行测试,它运行得很快。

要输入组合框,请将“.additem”替换为循环以加载每个组合框。

如何做到这一点——在谷歌中搜索

如何使用 vba 填充组合框

如果用户窗体上的任何控件不存在,则您不能引用它们。

创建后需要自己搜索,然后修改。

下面带有按钮代码的示例。

我认为这应该让您了解如何管理它。

Option Explicit

Private Sub CommandButton1_Click()
Dim refControl As Control, frm As UserForm
Dim x
Set frm = Me
With Me
For Each x In Me.Controls
If TypeName(x) = "ComboBox" Then
    Select Case x.Name
        Case "cmbDemo3"
        MsgBox "works!"
        'here you can put your code
    End Select
    MsgBox x.Name
End If
Next x
End With
End Sub

Private Sub UserForm_Initialize()
Dim combobox_Control As Control
     Dim i

    For i = 0 To 5
         Set combobox_Control = Controls.Add("forms.combobox.1")
         With combobox_Control
             .Name = "cmbDemo" & i
             .Height = 20
             .Width = 50
             .Left = 10
             .Top = 10 * i * 2
             .AddItem "hihi" 'here you can add your input code
         End With
     Next i
End Sub

【讨论】:

  • 这正是我想要的。谢谢。
  • 有了这段代码,我如何使用 cmbDemo3_Change() 事件?我的目标是级联组合框。
  • 我已经找到了我上面问的解决方案:stackoverflow.com/questions/3014421/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-17
  • 2020-04-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多