添加VBA代码以添加自定义功能区后,我发现在工具栏中显示需要一些时间。在我们的Workbook open事件中调用用于创建功能区的VBA代码。
Sub LoadCustRibbon(sDummy)
Dim hFile As Long
Dim path As String, fileName As String, ribbonXML As String, user As String
hFile = FreeFile
user = Environ("Username")
path = "C:\Users\" & user & "\AppData\Local\Microsoft\Office\"
fileName = "Excel.officeUI"
ribbonXML = "<mso:customUI xmlns:mso='http://schemas.microsoft.com/office/2009/07/customui'>" & vbNewLine
ribbonXML = ribbonXML + " <mso:ribbon>" & vbNewLine
ribbonXML = ribbonXML + " <mso:qat>" & vbNewLine
ribbonXML = ribbonXML + " <mso:sharedControls>" & vbNewLine
ribbonXML = ribbonXML + " <mso:button id='RefreshRow' label='RefreshRow' imageMso='Refresh' onAction='RefreshRow'/>" & vbNewLine
ribbonXML = ribbonXML + " <mso:button id='RefreshSheet' label='RefreshSheet' imageMso='RefreshAll' onAction='RefreshSheet'/>" & vbNewLine
ribbonXML = ribbonXML + " </mso:sharedControls>" & vbNewLine
ribbonXML = ribbonXML + " </mso:qat>" & vbNewLine
ribbonXML = ribbonXML + " <mso:tabs>" & vbNewLine
ribbonXML = ribbonXML + " <mso:tab id='RefreshTab' label='Refresh Scores' insertBeforeQ='mso:TabFormat'>" & vbNewLine
ribbonXML = ribbonXML + " <mso:group id='RefreshScoreGrp' label='Refresh Scores' autoScale='true'>" & vbNewLine
ribbonXML = ribbonXML + " <mso:button id='RefreshRow' label='RefreshRow' imageMso='Refresh' onAction='RefreshRow'/>" & vbNewLine
ribbonXML = ribbonXML + " <mso:button id='RefreshSheet' label='RefreshSheet' imageMso='RefreshAll' onAction='RefreshSheet'/>" & vbNewLine
ribbonXML = ribbonXML + " </mso:group>" & vbNewLine
ribbonXML = ribbonXML + " </mso:tab>" & vbNewLine
ribbonXML = ribbonXML + " </mso:tabs>" & vbNewLine
ribbonXML = ribbonXML + " </mso:ribbon>" & vbNewLine
ribbonXML = ribbonXML + "</mso:customUI>"
ribbonXML = Replace(ribbonXML, """", "")
Open path & fileName For Output Access Write As hFile
Print #hFile, ribbonXML
Close hFile
End Sub
我希望在打开工作簿时,功能区应立即显示。不确定我错过了什么。我使用了stackoverflow线程中的这段代码片段。
通过在Workbook_Open事件中的LoadCustRibbon之后添加一个MsgBox,我确实有一个临时解决方案。但是我想把它带出来。有帮助吗?
Private Sub Workbook_Open()
Call LoadCustRibbon("")
MsgBox "Please enable macros! Also, go through the 'Read Me' tab on how to use this workbook"
End Sub