【问题标题】:Excel 2013 crashing, due to memory fragmentation由于内存碎片,Excel 2013 崩溃
【发布时间】:2015-11-26 13:17:16
【问题描述】:

自从将我们的用户从 Excel 2007 升级到 32 位 Excel 2013 后,我们公司面临着大量的性能和稳定性问题。

我们不得不为某些用户禁用硬件加速,更改控制面板\轻松访问中心中的设置,甚至升级英特尔显卡驱动程序以提高稳定性,所有这些都取得了不同程度的成功。

但我们无法解决的一个问题是:

32 位版本的 Excel 2013 似乎使用自己的内存管理器从 32 位内存映射到 Windows 7 使用的 64 位内存。

问题是,当这块内存变得过于碎片化时,Excel 2013 将完全崩溃。

有时,在使用了一个小时后,我们看到 Excel 2013 尝试搜索 XX'Mb 的内存块,如果找不到此大小的连续内存块,它就会崩溃.

作为一家金融公司,我们在这些 Excel 文件中有很多旧 VBA 代码,而迁移到 64 位 Excel 2013 会带来更多问题。

那么有人知道如何解决 Excel 2013 的内存问题吗?

更新

有些读者(可以理解)问我们为什么不只安装 64 位版本的 Excel 2013,尤其是在我们运行 64 位 Windows 7 时。

引用微软的话,原因是兼容性

64-bit editions of Office 2013

“我们向大多数用户推荐 32 位版本的 Office,因为它与大多数其他应用程序,尤其是第三方加载项更兼容。这就是安装 32 位版本的 Office 2013 的原因默认情况下,即使在 64 位 Windows 操作系统上也是如此。"

我们的用户不想要花里胡哨或时髦的动画。他们想要稳定的东西,即使他们的 Excel 文件和 10 年前编写的 VBA 也是如此。其中一些代码甚至使用了 FORTRAN .dll 计算引擎、DAO 库等。

从 IT 支持的角度来看,我们只需要一个仍受 Microsoft 支持的 Excel 版本。

这就是我们现在使用 32 位 Excel 2013 的原因。

问题是,这是 32 位 Excel 2013 的一个严重问题,大多数金融公司仍然大量使用旧版 Excel/Access 应用程序......我们可以做些什么来让这个环境更加稳定?

【问题讨论】:

  • 内存碎片不是问题...... RAM中的R代表随机。
  • 因为您可以阅读德语,所以此链接可能会有所帮助xlam.ch/xlimits/speicher.htm
  • @MikeGledhill 是的,但它太分散的可能性我会在无知的情况下假设内存更多。但是8GB应该绰绰有余。我希望我的办公室能给我们这么时髦的笔记本电脑。我们必须在穿孔卡片上运行 Office 2010!
  • 不要太嫉妒。我们仍然在每晚对股票行情进行备份。

标签: excel vba


【解决方案1】:

我在我的项目中也遇到过这个问题,但是因为我使用 doevents 关键字管理代码并将适当的内存管理代码放在函数和过程的末尾,清除变量,然后放置 doevents 所以它将减少 90% 的崩溃。

【讨论】:

    【解决方案2】:

    “变化是不可避免的,适应最快的人最有可能生存下来。” -博士。拉里·弗莱因哈特(Numb3rs)

    一旦你用完了可寻址内存,你就完成了,无论是由于内存泄漏还是使用限制。如果您认为存在诸如内存泄漏之类的问题,您需要与 Microsoft 一起解决,您的未来将获得一张昂贵的支持票。他们可以修复它,但您只是采取昂贵的方式来维护一个正在破坏和/或无法满足您需求的系统。

    如果您认为最佳解决方案涉及维护旧代码,请切换到 Excel 64 位。这做了两件事。它为您提供了更大的可寻址内存来处理内存问题。它还具有更改程序部分的附加价值,这可能会解决您因内存泄漏而遇到的任何问题。存在其他选项,例如具有 VBA 集成的 OpenOffice/LibreOffice(您的里程可能会有所不同)。

    我建议学习一种编程语言 Python,它具有像 Pandas 这样的 Excel 模块。这是一个强大的解决方案,但使用起来需要一些时间,但从长远来看,您会从中获得更多价值。

    【讨论】:

    • 真的,这是我读过的对此处报告的合法问题的最奇怪的回复之一。顺便说一句,这个内存问题在 Excel 2016 32 位中修复。问题就消失了。也许引用应该是“Excel 2013 中的错误是不可避免的,等等等等。”!!
    猜你喜欢
    • 2012-03-16
    • 1970-01-01
    • 1970-01-01
    • 2013-08-14
    • 2016-11-18
    • 1970-01-01
    • 2010-10-26
    • 1970-01-01
    • 2018-11-10
    相关资源
    最近更新 更多