如何获取dropDown控件的值?

时间:2012-10-04 09:22:53

标签: xml excel vba excel-vba ribbon

功能区上的dropDown:

<dropDown id="dd01"
onAction="dd01OnAction"/>

在VBA中,我需要

Sub dd01OnAction(control As IRibbonControl, ID As String, index As Integer)
If dd01.Value = "Sky" Then MsgBox "323"
End Sub

如何获取dropDown的值?

1 个答案:

答案 0 :(得分:1)

我认为你不能直接获得价值。

我通常从集合对象加载dropDowns,并确保集合中的ID与dropDown中的索引匹配。这样我就可以根据回调中的索引或ID参数从集合中获取所有相关值。你能用类似工作的东西吗?

  

这是否意味着在每次更改Collection之后,我需要Invalidate ribbon? Mamma Mia,几乎每次点击后都会

是的,但是,通过使用ribbonobject.InvalidateControl("ID"),您只能使特定的dropDown控件无效,而不是整个功能区。

非常简短的例子:

Sub dd01OnAction(control As IRibbonControl, ID As String, index As Integer)
    '***** Assumes that MyCollection is initialized elsewhere
    '***** and filled with strings :)
    Debug.Print "The value is " & MyCollection.Item(index)

    If MyCollection.Item(index) = "Sky" Then MsgBox "323"

End Sub