我最近重新安装了 Windows 10、Avira Free Antivirus v. 15.0.44.142 和 Office Professional Plus 2010。重新安装之前,这个应用程序组合运行良好。
现在,当我尝试从新的 Word 文档打开 VBA IDE 时,收到以下消息:
Word 遇到了问题。
保存文件时出现问题。
下面列出了一些可能的原因,例如缺少磁盘空间、RAM 不足或缺少权限;但这些都与此无关。
唯一可能相关的是:
如果计算机运行的防病毒软件版本与 Microsoft Office 不兼容或必须更新,也会出现此错误。
如上所述,我正在运行 Avira Free Antivirus,据我所知,该防病毒软件已更新。我尝试在 Avira 实时保护关闭的情况下打开 VBA IDE,但没有成功。
一旦我关闭该消息,VBA IDE 窗口就会打开,但没有可用的项目,并且大多数菜单项都被禁用。
在打开 VBA IDE 之前保存带有扩展名的文档.docm
没有帮助。
尝试从其他应用程序打开 VBA IDE 时也会出现类似的奇怪结果:
- Excel 列出了三个项目项目1,项目2和项目3,但没有每个项目下面通常的对象树 - 类模块,标准模块等 - 也没有ThisWorkbook节点。
- PowerPoint 与 Word 相同——根本没有项目——但没有任何错误。
我已尝试通过 Office 安装程序卸载并重新安装 VBA。
安全设置已设置为禁用宏并发出警告。如果我没记错的话,以前的做法是禁用宏,除非我明确允许它们用于特定文档。信任对象模型每个应用程序都会被检查。
我一直在寻找在 Avira 中控制这个问题的设置,但没有成功。
注册表不包含所VBAOff
描述的项这里。
如何为 Office 应用程序启用 VBA?
注意:之前的安装不是 Windows 10 的全新安装;首先是 Windows 8,然后是 8.1,然后是 10。
在打开 VBA 编辑器之前我尝试过的事情:
- 维修办公室
- 卸载并重新安装 Office,然后手动安装 Office 2010 SP2
- Windows 更新(在上述手动安装后仅发现 Office 更新)
- 以管理员权限运行 Word
- 启用所有宏从信任中心选择
- 删除
Normal.dotm
模板并允许 Word 重新创建它 - 卸载 Office,运行评论中 @harrymc 引用的“清理 Office 卸载”工具,然后重新安装 Office
- 添加 Outlook(之前未安装)
- 关闭 UAC(启动 Word 之前)
- 在安全模式下启动 - 我无法启动 Word;Word 未被识别为已激活
- 设置
HKLM\SYSTEM\CurrentControlSet\Control\FileSystem LongPathsEnabled = 1
并重启
查看事件查看器,我没有发现任何内容系统,应用或者安全(全部在Windows 日志)我唯一找到的是以下事件应用程序和服务日志 -> Microsoft Office 警报每次我尝试在新文档中的 Word 中打开 VBA 编辑器时:
Log Name: OAlerts
Source: Microsoft Office 14 Alerts
Date: 07/03/2019 20:49:42
Event ID: 300
Task Category: None
Level: Information
Keywords: Classic
User: N/A
Description:
Microsoft Word
Word has encountered a problem.
P1: 200815
P2: 14.0.7015.1000
P3: 5v59
P4: 0x80070002
Event Xml:
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
<System>
<Provider Name="Microsoft Office 14 Alerts" />
<EventID Qualifiers="0">300</EventID>
<Level>4</Level>
<Task>0</Task>
<Keywords>0x80000000000000</Keywords>
<TimeCreated SystemTime="2019-03-07T18:49:42.772417400Z" />
<EventRecordID>120</EventRecordID>
<Channel>OAlerts</Channel>
<Security />
</System>
<EventData>
<Data>Microsoft Word</Data>
<Data>Word has encountered a problem.</Data>
<Data>200815</Data>
<Data>14.0.7015.1000</Data>
<Data>5v59</Data>
<Data>0x80070002</Data>
</EventData>
</Event>
在 Excel 或 PowerPoint 中打开编辑器时没有类似事件。
Process Name = "WINWORD.EXE"
使用 Sysinternals ProcMon,仅在尝试从 Word 打开 VBA 编辑器时捕获,并过滤和排除的结果SUCCESS
,BUFFER OVERFLOW
以及NAME NOT FOUND
来自的结果Result
,我发现以下内容:
RegOpenKey ACCESS DENIED
HKLM\Software\WOW6432Node\Microsoft\VBA
CreateFileMapping FILE LOCKED WITH READERS
C:\Program Files (x86)\Common Files\microsoft shared\VBA\VBA7\VBE7.DLL
CreateFileMapping FILE LOCKED WITH READERS
C:\Program Files (x86)\Common Files\microsoft shared\VBA\VBA6\VBE6EXT.OLB
重复FILE LOCKED WITH READERS
多次。
但经过进一步调查,我发现稍后从同一注册表项 ( HKLM\Software\WOW6432Node\Microsoft\VBA
) 读取会成功。此外,CreateFileMapping
正在使用路径的长名称;紧接着CreateFileMapping
使用 DOS 名称成功,例如C:\PROGRA~2\COMMON~1\MICROS~1\VBA\VBA7\VBE7.DLL
。
答案1
验证或安装最新更新
您可能需要将 Windows 更新设置为自动下载并安装推荐的更新。安装任何重要、推荐和可选的更新通常可以通过替换过期文件和修复漏洞来解决问题。要安装最新的 Microsoft Office 更新,请参阅使用 Microsoft Update 更新 Office 和你的计算机。
有关最新 Office 更新的列表,请参阅Office 更新。如果安装最新的 Windows 和 Office 更新后问题仍未解决,请转到方法 2。
确保计算机安装了最新的 Windows 更新是个好主意。更新通常可以修复软件问题。在使用以下任何方法之前,请先尝试安装更新。安装更新后,重新启动计算机,然后启动 Word。
解决启动 Word 时出现的问题
重要的
请仔细按照本节中的步骤操作。如果错误地修改了注册表,可能会出现严重问题。在修改注册表之前,备份注册表以便恢复以防出现问题。
您应尝试以下故障排除方法:
方法 1:将文档插入到另一个文件中
方法 2:使用 /a 开关启动 Word
方法 3:删除 Word Data 注册表子项
方法 4:删除 Word Options 注册表项
方法 5:替换 Normal.dot 或 Normal.dotm 全局模板文件
方法 6:禁用启动文件夹加载项
方法 7:删除 COM 加载项注册表项
方法 8:更改默认打印机
关注详细信息微软。
答案2
由于这个奇怪的问题出现在多台计算机上,甚至实际上出现在您所有的计算机上,所以这更多地与您的安装有关,而不是 Office 中的错误。
问题可能是您的公司正在有选择地安装 Windows 更新补丁 (MSUS),或者选择不当的安装选项,或者您在所有计算机上安装的某些软件产品(主要怀疑对象始终是安全软件)。
您可以进行的一些测试是在安全模式下启动以禁用所有第三方软件,或者使用
进程探索器
检查哪个进程正在VBE7.DLL
锁定VBE6EXT.OLB
。
最后一个测试是使用默认安装设置,全新安装 Windows 10 和 Office,然后反复运行 Windows 更新,直到找不到更多更新。您可以在虚拟机中执行此操作以简化操作。
无论您发现什么,我相信这个问题与您的安装方法或软件有关。
答案3
有一次,我在同一台计算机上同时使用 MS Office 2016 和 MS Office 2003 时遇到了同样的错误,我进行了大量搜索,发现了一件类似于没有足够的权限执行此操作的事情,即使在管理员帐户上也是如此。
正如你所说,你正在使用Windows 10. 打开任务管理器,检查办公室资源引擎状态,如果它已停止则运行它,但如果无法运行它,请尝试使用 Ccleaner 并清理注册表并重新启动计算机。
答案4
验证权限和文件访问
由于错误表明无法创建/写入/读取文件,因此我将首先使用进程监控由 Sysinternals 来揭示办公应用程序的任何读/写错误或访问被拒绝错误。可能缺少所需路径中的文件夹,或者文件权限未按预期设置。
这也可能揭示某些注册表项是否丢失或具有不正确的权限。
确保 UAC 没有阻止启动
如果尚未关闭 UAC,则应尝试在暂时关闭 UAC 后运行该应用程序。尽管以管理员身份运行原始应用程序,UAC 仍可能阻止其他进程生成。
检查事件日志中的警告和错误
检查系统,应用和安全在您尝试时查看事件日志中的错误和警告。如果它们存在并在每次尝试启动 VBA 时重复出现,请将它们添加到您的问题中作为进一步的证据。
在全新环境中开始
创建具有本地管理员权限的新用户帐户。使用新帐户登录并尝试启动 VBA 编辑器。这将根据本地默认用户配置文件提供一个“干净”的环境,有助于确定用户配置文件损坏是否是原因。