首页 > 解决方案 > 有没有办法使用 vba 在用户表单中的组合框中的所有值之间切换?

问题描述

我通过多个页面有多个comboboxes 。multipage这些comboboxes要么是英制的,要么是公制的。有没有办法改变combobox所有s上所有es的默认值multipage

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在宏编辑器中设置为公制。我希望能够一次在所有esvalue 0之间切换。value 1combobox

标签: excelvbacomboboxdefault-value

解决方案


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

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 中的英制


推荐阅读