VBA ComboBox价值索引

时间:2017-07-18 14:46:58

标签: vba excel-vba combobox excel

我有一个包含组合框的表单,其中包含值

With io6
   .AddItem "90°"
   .AddItem "180°"
   .AddItem "270°"
   .AddItem "360°"
End With

我实际使用的这个方法的成员是.ListIndex。当用户选择270度时,我向变量发送2。当我读取变量时,我希望组合框正确显示适当的值。换句话说,如果变量是1,我希望组合框显示180度。是否可以实现没有写入.Value的select \ if语句?

Sub varChange(val as integer)

   With comboBox

     Select Case val
       Case 1
         .value = "90°"
       Case 2
         .value = "180°"
       Case 3
         .value = "270°"
       Case 4
         .value = "360°"
     End Select

    End With

End Sub

最直接我可以问这个问题是,可以根据索引设置方法元素吗?我可以根据索引设置组合框元素,而不必写入新值吗?

3 个答案:

答案 0 :(得分:2)

我不确定我是否做对了,但我想你想得到所选项目的列表索引。 你可以通过

获得
x = io6.ListIndex + 1

由于ListIndex是基于0的,所以+1是存在的,但是你希望它基于1 还有一些完全不同的东西,
取下支架。没有返回值的方法调用不会在VBA中使用它们

评论后修改
换句话说,即从索引值中获取值,请执行以下操作:

y = io6.List(x - 1)

答案 1 :(得分:0)

sValue = combobox.List(combobox.ListIndex,0)

答案 2 :(得分:0)

  

我能问的最直接的问题是,可以基于索引设置方法元素吗?我可以基于索引设置组合框元素,而不必输入新值吗?

是的,
我使用了以下行:

io6.ListIndex = val - 1

所以在您的代码中是:

Sub varChange(val as integer)
    comboBox.ListIndex = val - 1
End Sub