我有一個自定義功能區,它調用vba命令。如果是這樣,我得到錯誤信息訪問2010自定義功能區vba錯誤
Microsoft Access cannot run the macro or callback function [FUNCTION OR SUB]
其中[FUNCTION OR SUB]
是功能還是我打電話子的名字。
生成上述消息的代碼的一個例子是:
Public Function OnButtonPress2(ctl As IRibbonControl)
MsgBox "OnButtonPress2"
End Function
凡OnButtonPress2
被稱爲帶材的XML文件中一個按鈕作爲
onAction="OnButtonPress2
上述工作對於宏,所以它可能不是該功能區的xml
========版本2 我已經創建了與XML和模塊的新簡單的測試分貝如下圖所示:
每個的結果是:
宏1 - 工作正常(它有一個彈出消息)
CommandOnAction2 - MSGBOX 「有一個錯誤編譯此功能」
OnButtonPress2 - MSGBOX「Microsoft Access不能運行宏或回調函數‘OnButtonPress2’
就行了‘公共gobjRibn作爲IRibbonUI’,IRibbonUI不autocomplet Ë導致我相信這是一個需要添加
XML(功能區名稱是NewRibbon並設置在啓動時打開)
<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui">
<ribbon startFromScratch="false">
<tabs>
<tab id="tab1" label="Your Custom Tab">
<group id="group1" label="Your Custom Group">
<button id="SampleButton" label="Macro1" onAction="Macro1" />
<button id="SampleButton2" label="CommandOnAction2" onAction="=CommandOnAction2()" />
<button id="SampleButton3" label="OnButtonPress2" onAction="OnButtonPress2" />
</group>
</tab>
</tabs>
</ribbon>
</customUI>
模塊的引用(名稱爲modRibbon)
Option Compare Database
Public gobjRibn As IRibbonUI
Public Function CommandOnAction2(ByVal ctl As IRibbonControl)
MsgBox "Function CommandOnAction2"
End Function
Public Sub OnButtonPress2(ByVal ctl As IRibbonControl)
MsgBox " Sub OnButtonPress2"
End Sub
Gord,謝謝你,我仍然有同樣的問題,我已經在==== VERSION 2下面添加了一個新的例子,並帶有結果。一個可能非常關鍵的問題是,在公開聲明中的IRibbonUI不會在'Public gobjRibn As'後自動完成 - 我可能有一個缺失的引用,但不知道它應該是什麼。 – user1737050 2013-05-14 18:47:00
您需要引用MSO.DLL。例如,在具有32位Office 2010(= Office 14)的64位計算機上:C:\ Program Files(x86)\ Common Files \ Microsoft Shared \ OFFICE14 \ MSO.DLL – Dror 2016-03-11 17:06:49