在office中使用VBA、無法打開VBA、顯示VBE6EXT.OLB不能被加載,內存溢出


  挺郁悶的,今天在matlab中使用notebook,想着在office中間直接使用公式計算並做筆記,但是在matlab中打notebook,結果在word里顯示無法加載VBE6EXT.OLB,然后是顯示需要在declare中更改ptrSafe之類的...balabala。

  在網上找了很多方法:

  1.說可以直接在office的安裝目錄下(C:\Program Files (x86)\Common Files\Microsoft Shared\VBA)有VBA6的目錄,只要把目錄中的VBE6.Dll放在VBA7文件夾下面就可以。

  2.有說的是,根據office安裝目錄(C:\Program Files (x86)\Microsoft Office\Office15\)下找到STARTUP文件夾,找到里面的一個文件MathType Commands 6 For Word ...這個文件並刪除,但是我的安裝目錄下office15下沒有STARTUP這個文件夾,所以這個對我來說也解決不了問題。

  3.也有說“VBE6EXT.OLB 不能被加載”,“內存溢出”,可以使用打開注冊表(HKEY_CLASSES_ROOT\TypeLib\{0002E157-0000-0000-C000-000000000046}\5.3\0\win32 ),然后找到對應的數據的目錄(C:\Users\Administrator\AppData\Local\Kingsoft\WPS Office\9.1.0.4953\office6\),在Kingsoft下面添加子目錄WPS Office\9.1.0.4953\office6\VBE6EXT.OLB

 可能不同的環境會有不同的狀況,可以依照自己的電腦情況,分別試一試。

  

  其實按照最后一種方法將注冊表打開后,發現這個路徑其實是WPS的安裝注冊路徑,所以果斷將路徑改成了C:\Program Files (x86)\Common Files\Microsoft Shared\VBA\VBA7\VBE6EXT.OLB再啟動office,正常使用宏VBA了,

  可以在matlab中敲notebook回車,會自動調到word,在代碼編輯區會有很多代碼,其中有幾行代碼是:

1 Private Declare Function WinHelp Lib "USER32.DLL" Alias "WinHelpA" (ByVal hWnd As Integer, ByVal lpHelpFile _
2  As String, ByVal wCmd As Integer, ByVal dwData As String) As Integer
3 Private Declare Function GetActiveWindow Lib "USER32.DLL" () As Integer

 

只要在每段代碼的“Private Declare ”后面加上PtrSafe 即可運行!

如下代碼:

1 Private Declare PtrSafe Function WinHelp Lib "USER32.DLL" Alias "WinHelpA" (ByVal hWnd As Integer, ByVal lpHelpFile _
2     As String, ByVal wCmd As Integer, ByVal dwData As String) As Integer
3 Private Declare PtrSafe Function GetActiveWindow Lib "USER32.DLL" () As Integer

   也可以在word中,按Alt+F11打開VBA,在TemplateProject(m-book模版)中打開  模塊-mwMatlabHelp宏可以看到代碼,也可以更改。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM