有没有一种方法可以使用 vba 在用户窗体的组合框中的所有值之间切换?

Is there a way to toggle between all values in a combobox in a userform with vba?

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

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 设置为公制。我希望能够一次在所有 combobox 中的 value 0value 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 中的英制值