【问题标题】:Is there a way to toggle between all values in a combobox in a userform with vba?有没有办法使用 vba 在用户表单中的组合框中的所有值之间切换?
【发布时间】:2020-08-13 06:48:26
【问题描述】:

我通过多个multipage 页面拥有多个comboboxes。这些comboboxes 是英制或公制。有没有办法更改所有multipages 上所有comboboxes 的默认值?

Private Sub UserForm_Initialize()
    ComboBox1.List = Array("KPa", "psi")
    ComboBox2.List = Array("mm", "inch")
    ComboBox3.List = Array("m", "ft")
    ComboBox4.List = Array("m3", "bbl")
    ComboBox5.List = Array("m^3", "ft^3")
    ComboBox6.List = Array("m", "ft")
    ComboBox7.List = Array("MPa", "psi")
    ComboBox8.List = Array("KPa/m", "psi/ft")
    ComboBox9.List = Array("KPa", "psi")
    ComboBox10.List = Array("m^3", "ft^3")
    ComboBox11.List = Array("m3", "bbl")
    ComboBox12.List = Array("mm", "inch")
    ComboBox13.List = Array("m", "ft")
    ComboBox14.List = Array("KPa", "psi")
    ComboBox15.List = Array("m3/min", "bbl/min")
    ComboBox16.List = Array("m3", "bbl")
    ComboBox17.List = Array("mps", "fps")
    ComboBox18.List = Array("mps", "fps")
    ComboBox19.List = Array("m^3", "ft^3")
    ComboBox20.List = Array("m3/min", "bbl/min")
    ComboBox21.List = Array("m", "ft")
    ComboBox22.List = Array("m/min", "ft/min")
    ComboBox23.List = Array("m^3", "ft^3")
    ComboBox24.List = Array("m^3", "ft^3")
    ComboBox25.List = Array("m3", "bbl")
    ComboBox26.List = Array("m3", "bbl")
    ComboBox27.List = Array("m^3", "ft^3")
    ComboBox28.List = Array("m^3", "ft^3")
    ComboBox29.List = Array("m^3", "ft^3")
End Sub

我将宏编辑器中的value property 设置为公制。我希望能够同时在所有comboboxes 中的value 0value 1 之间切换。

【问题讨论】:

    标签: excel vba combobox default-value


    【解决方案1】:

    您可以遍历用户窗体上的所有控件并使用以下内容进行设置

    Dim cBox As Control
    
    For Each cBox In Me.Controls
        If TypeName(cBox) = "ComboBox" Then
            cBox.ListIndex = IIf(prop = "Metric", 0, 1)
        End If
    Next cBox
    

    prop 替换为决定是公制还是英制的变体。我假设您的所有控件都设置为索引 0 中的公制值和索引 1 中的英制

    【讨论】:

    • 感谢您的快速回复。我只是好奇设置“道具”的最佳方式。公制是索引 0 处的默认值,英制是索引 1。我可以在用户窗体上使用选项按钮,一个用于公制,另一个用于英制吗?
    • 对不起,我不是故意粗鲁的。我对这一切和这个论坛都是新手。我假设如果我得到你建议的工作,我应该发布它是如何工作的。你写它的方式改变了我想要的所有组合框。我再次为我在发帖时的无知道歉。我删除了我发布的“答案”。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-05
    • 1970-01-01
    • 2014-02-18
    • 1970-01-01
    • 2021-08-08
    • 2020-12-13
    相关资源
    最近更新 更多