OFFICE2007 自编宏使用 以及 文件未找到 VBA6.DLL 错误处理
在excel中打開一個(gè)舊文件,文件中有VBA編寫的宏. 以前啟動(dòng)只是提示宏是否啟用,但是2007版本已經(jīng)直接禁止了. 根據(jù)提示發(fā)現(xiàn),在excel選項(xiàng)->信任中心->宏設(shè)置中,有關(guān)"對(duì)于在非信任位置的文檔的宏"的選項(xiàng),共有4項(xiàng):
禁用所有宏,并且不通知
禁用所有宏,并發(fā)出通知
禁用無數(shù)字簽署的所有宏
啟用所用宏
對(duì)于受信任位置,信任中心中也可以配置,但覺得這樣配置不方便,而且可能有外來的文件也是不能隨便擴(kuò)大信任位置的.那么前2項(xiàng)直接禁用,那就無法實(shí)用自己寫的宏了,自然不能接受.第4條,存在安全隱患當(dāng)然也不行,起始就是想實(shí)用自己編寫的宏,因此只能選第三個(gè)了"禁用無數(shù)字簽署的所有宏",那么現(xiàn)在的問題就是怎么給自己的宏加數(shù)字簽名呢?
如果已經(jīng)有購(gòu)買了信任中心發(fā)布的證書那么就可以直接使用了.下面是針對(duì)沒有申請(qǐng)過證書的一般人.office本身就提供這樣一個(gè)工具,根據(jù)幫助提示,打開開始菜單的office項(xiàng),選擇Microsoft Office工具下的VBA項(xiàng)目的數(shù)字證書,輸入名稱就可以生成一個(gè)自行簽署的數(shù)字證書,這個(gè)證書只能在本機(jī)使用,主要用于自己的VBA程序調(diào)試使用.
證書生成好了,打開EXCEL,在"開發(fā)工具"菜單欄中點(diǎn)擊Visual Basic就可以打開項(xiàng)目,然后選擇項(xiàng)目,點(diǎn)擊菜單的工具->數(shù)字簽名,如果沒有使用過證書,則要先點(diǎn)"選擇",找到剛才生成的證書,然后點(diǎn)擊確定,那么項(xiàng)目就已經(jīng)簽名了.
到了這步,再嘗試打開帶有宏的EXCEL文件,結(jié)果仍然是禁止宏的,檢查,宏確實(shí)使用自己的證書簽名了,但是仍無法使用.看來是自己證書沒有被信任.于是打開IE,進(jìn)入到Internet選項(xiàng)->內(nèi)容->證書,切換到"受信任的發(fā)布者",然后點(diǎn)擊導(dǎo)入,找到剛才生成的證書.我也沒注意剛才證書是生成到哪里,但是能在"個(gè)人"選頁中找到,于是先導(dǎo)出到文件,然后在導(dǎo)入到"受信任的發(fā)布者"中.然后自己寫的宏就啟動(dòng)啟用了,可以使用了.
本來配置好數(shù)字簽名后,原來的宏就可以使用了,也可以正確執(zhí)行.但是隨便改了一些代碼.再次執(zhí)行.卻出現(xiàn)了錯(cuò)誤"文件未找到 VBA6.DLL ",調(diào)試也指向宏的入口出,沒發(fā)現(xiàn)上面問題,這部分代碼都沒有修改.非常奇怪.難道現(xiàn)在office 2007還要依賴與VB6的dll嗎,查看系統(tǒng)目錄和office目錄都沒有發(fā)現(xiàn)VBA6.DLL.沒辦法,只好在網(wǎng)上下載了一份VBA6.DLL.也不知道怎么處理,先把文件放到%WINOWS%\SYSTEM32目錄下,在運(yùn)行宏,錯(cuò)誤依舊,嘗試使用regsvr32安裝dll,提示無法找到文件. 最后把VBA6.DLL文件放到了office的程序目錄中. 這次宏剋運(yùn)行沒有錯(cuò)誤了.
問題終于解決了. 但是有不少疑問.?
office 2007還要依賴與VB6的dll嗎,為什么沒有自帶.
本來宏是可以執(zhí)行的,但只是修改了一下,并沒有增加什么內(nèi)容,卻無法使用了.必須配置VBA6.DLL.
這些問題暫時(shí)沒搞懂.能用就好.先這樣了.
總結(jié)
以上是生活随笔為你收集整理的OFFICE2007 自编宏使用 以及 文件未找到 VBA6.DLL 错误处理的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: vue-router 路由跳转
- 下一篇: shell的logo含义_Shell(壳