挺郁悶的,今天在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宏可以看到代碼,也可以更改。 |