0
我在Excel VBA中創建了一個功能區,下面是創建組合框並添加一些項目的代碼的快照。組合框被成功創建,但是當我選擇任何項目時,onChange事件不會被觸發。事件沒有在Excel中的組合框中被觸發/執行功能區
ribbonXML = ribbonXML + " <mso:group id='StyleGruop' label='Styles'>" & vbNewLine
ribbonXML = ribbonXML + " <mso:button id='btnDeleteStyle' imageMso='PictureStylesGallery' screentip='Delete Styles' size='large' onAction='About_onAction'/>" & vbNewLine
ribbonXML = ribbonXML + " <mso:separator id='Separator4'/>" & vbNewLine
ribbonXML = ribbonXML + " <mso:dropDown id='ddlStyles' label='Style:' onAction='rxddSelectSheet_Click' getItemID='rxitemddSelectSheet_getItemId' getItemCount='rxitemddSelectSheet_getItemCount' getItemLabel='rxitemddSelectSheet_getItemLabel' />" & vbNewLine
'ribbonXML = ribbonXML + " <mso:dropDown id='ddlFreqStyles' label='Frequent Style:' getItemCount='Length1ItemCount' getItemLabel='Length1ListItem' onAction='Length1OnAction' getSelectedItemIndex='Length1ItemSelectedIndex' sizeString='centimeters' />" & vbNewLine
ribbonXML = ribbonXML + " <mso:comboBox id='MyMonth' label='Month:' showLabel='true' onChange='cbMonth_onChange' getItemID='cbMonth_getItemID' getItemCount='cbMonth_getItemCount' getItemLabel='cbMonth_getItemLabel' >" & vbNewLine
ribbonXML = ribbonXML + " <mso:item id='Month1' label='Jan'/>" & vbNewLine
ribbonXML = ribbonXML + " <mso:item id='Month2' label='Feb'/>" & vbNewLine
ribbonXML = ribbonXML + " <mso:item id='Month3' label='Mar'/>" & vbNewLine
ribbonXML = ribbonXML + " </mso:comboBox>" & vbNewLine
ribbonXML = ribbonXML + " </mso:group>" & vbNewLine
以下是在功能:
Public Sub cbMonth_getItemID(control As IRibbonControl, index As Integer, ByRef id)
'
' Code for getItemID callback. Ribbon control comboBox
'
returnedVal = "Month" & index
End Sub
Public Sub cbMonth_getItemCount(control As IRibbonControl, ByRef returnedVal)
'
' Code for getItemCount callback. Ribbon control comboBox
'
returnedVal = 12
End Sub
Public Sub cbMonth_getItemLabel(control As IRibbonControl, index As Integer, ByRef returnedVal)
'
' Code for getItemLabel callback. Ribbon control comboBox
'
returnedVal = Format(DateSerial(2011, 7 + index, 1), "mmm-yyyy") 'myMonth
End Sub
Public Sub cbMonth_onChange(control As IRibbonControl, Text As String)
'
' Code for onChange callback. Ribbon control comboBox
'
myMonth = Text
VBA.MsgBox myMonth
End Sub
任何幫助,將不勝感激。提前致謝。
你可以嘗試運行'Application.EnableEvents = True',然後看看你的事件是否在此之後被解僱? – Tom
我試過但徒勞無功,onChange事件仍然沒有執行。 – Daryl