【问题标题】:Random Excel crashes xlsm随机 Excel 崩溃 xlsm
【发布时间】:2019-03-21 10:19:18
【问题描述】:

在我的公司中,我使用 Excel 2013 64 位和许多 xlsm 文件,其中包含一些使用基本内置库的宏。偶尔我会遇到一个随机的“microsoft excel 已停止工作”(主要是在打开文件时,但上周它发生在我只是盯着屏幕的时候)。 95%的时间制作文件副本,以便excel不会将其视为受信任,转到vba编辑器并手动编译vba项目并保存它可以解决问题,但是最近它只是因为这些崩溃的频率而烦恼从每周 1 次变为每天几次。我想我每天浪费大约 30 分钟来修复崩溃的文件。所以一般来说,当excel崩溃发生时我知道该怎么做,但我想知道是否可以做一些事情来防止它们首先发生。

此外,崩溃的文件在装有 excel 2010 的机器上也能完美运行。用 E2010 保存文件也解决了 E2013 的问题

【问题讨论】:

  • 过去我在使用 Excel 宏时遇到的崩溃似乎与内存不足有关。我唯一(不理想)的解决方法(处理大量数据时)是确保您只打开一个工作簿!
  • 我不认为这里的情况是一样的,大多数时候我的内存都没有超过一半

标签: excel vba


【解决方案1】:

64 位 Office 的 VB 代码存在很多问题。这些似乎与编译代码时生成的 pcode 有关,因此重新编译似乎可以修复它们。有一个注册表修复强制重新编译,你需要设置这两个值:

HKEY_CURRENT_USER\Software\Microsoft\VBA\7.0\Common
Type:  DWORD

Name:  CompileOnDemand
Value:  0

和:

HKEY_CURRENT_USER\Software\Microsoft\Office\16.0\Excel\Options\
Type:  DWORD

Name:  ForceVBALoadFromSource
Value:  1

这两个人帮我修好了。

【讨论】:

  • 按需编译键是否与 VBA 编辑器工具>选项>常规>编译>“按需编译”相同?
  • 可能 - 我从某处网站上的帖子中获取了这两个
  • sooo 通过我们的 IT 部分检查所有内容需要一段时间,主要是因为此 ForceVBA 修复似乎与旧的 MS Office 补丁 (KB4011597) 有关,但只需将此值添加到注册表即可解决问题
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-10-17
  • 2013-08-23
  • 2013-04-21
  • 2011-08-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多