【问题标题】:Excel combobox Drop down loopExcel 组合框下拉循环
【发布时间】:2021-10-22 10:10:30
【问题描述】:

我有一个 useform,其名称中有 30 个组合框(combobox1 到 combobox30),我想通过 For 或 For each comboxlist(Gram、Ml、pice)为每个人添加一个组合框列表,我不想写30次..

Dim cmb As Object
Dim usf As UserForm

Set cmb = Me.cmb1
Set usf = Me

For cmb = 1 To 30
    With cmb
        .AddItem "Gram"
        .AddItem "Mil."
        .AddItem "Pice"
    End With
Next cmb

【问题讨论】:

  • 如果这些答案解决了您的问题,您应该接受一个答案,以便这些问题得到解决。如果他们没有,也许你可以说为什么不:)

标签: excel vba combobox userform


【解决方案1】:

您可以使用表单的Controls() 方法:

Dim i As Long

For i = 1 To 30
    With Me.Controls("Combobox" & cmb)
        .AddItem "Gram"
        .AddItem "Mil."
        .AddItem "Pice"
    End With
Next i

【讨论】:

    【解决方案2】:

    遍历控件,如果是组合框,则添加项目。这里的优点是您不必提前知道有多少组合框。我在 UserForm_Initialize() 代码中有这个。

    Dim cmb As Control
    
    For Each cmb In Me.Controls
    
        If TypeName(cmb) = "ComboBox" Then
    
            With cmb
                .AddItem "Gram"
                .AddItem "Mil."
                .AddItem "Pice"
            End With
    
        End If
    
     Next
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-09-25
      • 1970-01-01
      • 1970-01-01
      • 2015-03-01
      • 2010-11-30
      • 2014-08-13
      • 2010-10-27
      相关资源
      最近更新 更多