1

功能区上的下拉菜单:

<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 的值?

4

1 回答 1

1

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

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

这是否意味着每次更改集合后,我都需要使功能区无效?Mamma Mia,几乎每次点击后都会出现

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

非常简短的例子:

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
于 2012-10-10T09:58:06.027 回答