在 Excel VBA 用户窗体中将 .AddItem 与不同的组合框一起使用

Using .AddItem With Different Comboboxes in Excel VBA 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 "type mismatch"。不确定这是否与我在用户表单上的按钮有任何关系。

如何遍历用户表单并对每个组合框使用 .AddItem?获得有关如何执行此操作的代码后,我会将其包装在 If 语句中,以便仅将其添加到名称中包含特定单词的某些组合框(如果这对上下文有帮助的话)。

提前致谢,

-安东尼

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

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

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() 活动中,您应该可以开始了。

安东尼,

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

How do I loop through a userform and use .AddItem to each combobox?

不清楚哪里需要循环。能具体点吗?