在Excel VBA用户表单中使用带有不同组合框的.AddItem

时间:2015-04-20 14:58:20

标签: vba for-loop foreach combobox userform

我有一个包含大量组合框的用户表单。我试图在初始化用户窗体时使用.AddItem,但没有成功。

这是我到目前为止所尝试的内容:

Sub Userform_Initialize()
  Dim cCont As MSForms.ComboBox

  For Each cCont In Me.Controls
    cCont.AddItem "Item Added"
  Next cCont
End Sub

我经常遇到运行时错误13"输入不匹配"上来。不确定这是否与我在userform上的按钮有关。

如何遍历用户表单并对每个组合框使用.AddItem?一旦我得到了如何执行此操作的代码,我将其包装在If语句中,只将其添加到名称中某些单词的某些组合框中,如果这有助于上下文。

提前致谢,

- 安东尼

3 个答案:

答案 0 :(得分:1)

将控件添加到我找到的用户窗体的最佳方法是遵循此过程。

Dim NewComboBox as Control
Set NewComboBox = Me.Controls.Add("Forms.ComboBox.1")
    With NewComboBox
        'Inside of this part you can put .name or any other property in the
        'activex controls properties part, .left .top .width and .height determine the size of the box
        .Name = Whatever Name You Desire
    End With

将它放在你的userform_initialize()事件中,你应该好好去。

答案 1 :(得分:1)

安东尼,

您正尝试在表单上的每个控件上调用AddItem方法。但并非所有控件都提供AddItem方法。您需要检查特定控件是否是组合框。并且只有控件是组合框,您才可以调用AddItem方法。

  

如何遍历用户表单并对每个组合框使用.AddItem?

目前尚不清楚需要循环的地方。你能更具体一点吗?

答案 2 :(得分:0)

您的代码可以正常工作,为用户表单添加两个组合框。我唯一能想到的是由于某种原因没有启用正确的引用。