分享

在office中使用VBA、无法打开VBA、显示VBE6EXT.OLB不能被加载,内存溢出

 Excel实用知识 2021-11-21

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

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多