Excel 2010 - 如何清除 RibbonX 下拉控制項?

Excel 2010 - 如何清除 RibbonX 下拉控制項?

我正在努力透過 Excel 2010 中的 VBA 程式碼清除下拉選擇。

我做了一些挖掘並了解到 InvalidateControl 方法會清除控制項的快取值。所以,我實現了它,並且......

Sub getUIHandle(ribbon As Office.IRibbonUI)
    Set MyRibbon = ribbon
End Sub
----
Sub LabelCallback(control As IRibbonControl, id As String, index As Integer)

    Select Case id
        Case "CH1"
            ' take some action
        Case "CH2"
            ' take some action
        Case "CH3"
            ' take some action
        Case "CH4"
            ' take some action
    End Select

MyRibbon.InvalidateControl (control.id)
End Sub

我跟踪了這些調用,並知道我的 getUIHandle 子函數正在調用,並且 InvalidateControl 調用正在調用。它根本不會使控件失效:)

是否有一種方法可以清除下拉 RibbonX 控制項目前選定的值?

編輯:

我重構了程式碼並更改了 LabelCallback 子例程以設定狀態變量,並在功能區中有一個單獨的按鈕實際上觸發「採取一些操作」例程,以解決此問題。在我看來不優雅。 (我敢說笨重嗎?)在選擇 dropBox 項目時採取操作更有意義,並且如果無論選擇哪個項目都會觸​​發該事件,效果都會很好。

相關內容