Excel“内存不足”错误运行宏仅在内存最多的计算机上发生

乍得

以下子例程为多个阵列分配内存,然后显示一个msg框。它可以在我的PC和所有人的笔记本电脑上正常运行,除了我的。我的计算机上出现“内存不足”错误,该错误比其他所有人拥有更多的内存。我有32 GB的内存。

我们俩都在同一硬件上运行32位版本的Excel。我试图重新启动以清除所有内存,并且仅在重新启动后才运行Excel。这对我没有帮助。当我检查任务管理器时,它表明我的内存使用率非常低(大约15%)。

如果我开始删除维度语句以分配较少的内存,则此例程最终将运行。

但是,为什么我的笔记本电脑内存不足,怎么办呢?

Sub Test()
  Dim A(482) As Date
  Dim B(482) As Integer
  Dim C(482) As Integer
  Dim D(482, 100) As Double
  Dim e(482, 100) As Double
  Dim f(482, 100) As Double
  Dim g(16000) As String
  Dim h(16000) As String
  Dim i(16000) As Single
  Dim j(16000) As String
  Dim k(16000) As String
  Dim l(16000) As Integer
  Dim m(16000) As String
  Dim n(16000) As Date
  Dim o(16000) As Integer
  Dim p(16000) As String
  Dim q(16000) As String
  Dim r(16000) As Double
  Dim s(16000) As Date
  Dim t(16000) As Integer
  Dim u(16000) As Double
  Dim v(16000) As Double
  Dim w(16000) As Integer
  Dim x(16000) As Double
  Dim y(16000) As Double
  Dim a1(16000) As Double
  Dim a2(16000) As String
  Dim a3(16000) As Double
  Dim a4(16000, 482) As Integer
  Dim a5(16000, 482) As Integer
  Dim a6(16000, 482) As Integer
  Dim a7(16000, 482) As Integer
  Dim a8(16000, 482) As Double
  Dim a9(16000, 482) As Double
  Dim a10(16000, 482) As Double
  Dim a11(16000, 482) As Double
  Dim a12(16000, 482) As Double
  Dim a13(16000, 482) As Double
  Dim a14(16000, 482) As Double
  Dim a15(16000, 482) As Double
  Dim a16(16000, 482) As Double
  Dim a17(16000, 482) As Double
  Dim a18(16000, 482) As Double
  Dim a19(16000, 482) As Double
  Dim a20(16000, 482) As Double
  Dim a21(16000, 482) As Double
  Dim a22(16000, 482) As Double
  Dim a23(16000, 482) As Double
  Dim a24(16000, 482) As Double
  Dim a25(16000, 482) As Double
  Dim a26(482) As Double
  Dim a27(16000, 482) As Double
  Dim a28(16000, 482) As Double
  Dim a29(16000, 482) As Double
  Dim a30(16000, 482) As Double
  Dim a31(16000, 482) As Double
  Dim a32(16000, 482) As Double
  Dim a33(16000, 482) As Double
  Dim a34(16000, 482) As Double
  Dim a35(16000, 482) As Double
  Dim a36(16000, 482) As Double
  Dim a37(16000, 482) As Double
  Dim a38(16000, 482) As Double
  Dim a39(16000, 482) As Double
  Dim a40(16000, 482) As Double
  Dim a41(16000, 482) As Double
  Dim a42(16000, 482) As Double
  Dim a43(200, 2) As Double
  Dim a44(200) As Double
  Dim a45(200, 2) As Double
  Dim a46 As Date
  Dim a47(482, 100) As Double
  Dim a48(482) As Double
  Dim a49(482) As Double
  Dim a50(482) As Double
  Dim a51(482) As Double
  Dim a52(482) As Double
  Dim a53(482) As Double
  Dim a54(482) As Double
  Dim a55(482) As Double
  Dim a56(482) As Double
  Dim a57(482) As Double
  Dim a58(482) As Double
  Dim a59(482, 482) As Double
  Dim a60(482) As Double
  Dim a61(482) As Double
  Dim a62(482, 100) As Double
  Dim a63(482) As Double
  Dim a64(482) As Double
  Dim a65(482) As Double
  Dim a66(482) As Double
  Dim a67(482) As Double
  Dim a68(482) As Double
  Dim a69(482) As Double
  Dim a70(482) As Double
  Dim a71(482) As Double
  Dim a72(482) As Double
  Dim a73(482) As Double
  Dim a74(482) As Double
  Dim a75(482) As Double
  Dim a76(16000) As Double
  Dim a77(16000, 482) As Double
  Dim a78(16000) As Double
  Dim a79(16000, 482) As Double
  Dim a80(16000) As Double
  Dim a81(482) As Double
  Dim a82(16000, 482) As Double
  Dim a83(16000) As Double
  Dim a84(16000) As Double
  Dim a85(16000, 482) As Double
  Dim a86(16000, 482) As Double
  Dim a87(16000, 482) As Double
  Dim a88(16000) As Double
  Dim a89(16000) As String
  Dim a90(16000) As String
  Dim a91(16000, 482) As Double
  Dim a100(482) As Double
  Dim a101(482) As Double

  Dim a102(40) As Double
  Dim a103(40) As Double
  Dim a104(40) As Double
  Dim a105(40) As Double
  Dim a106(40) As Double
  Dim a107(40) As Double
  Dim a108(40) As Double
  Dim a109(40) As Double
  Dim a110(40) As Double
  Dim a111(40) As Double
  Dim a112(40) As Double
  Dim a113(40) As Double
  Dim a114(40) As Double

  Dim a115(482) As Double
  Dim a116(482) As Double
  Dim a117(482) As Double
  Dim a118 As Double
  
  MsgBox ("Hello!")
End Sub
克里斯·尼尔森

如果您具有支持LAA的版本,则在64位操作系统上运行的32位Excel将为Excel提供4GB的空间。(没有LAA,Excel只能使用2G)。拥有多少物理内存没有关系。

那4GB就是内存。它由Excel应用本身,已打开的所有工作簿,已安装的所有插件以及正在运行的vba代码使用。

您正在向这些阵列分配接近3GB的空间。Excel分配的其他任何内容都将达到极限。

根据您的评论,明显地,删除外接程序会导致> 4GB和<4GB之间的差异

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Golang,致命错误:1 TB RAM计算机上的内存不足

笔记本计算机上的物理内存不足-正确的方法?

Python由于内存不足导致计算机崩溃

防止由于内存不足而减慢计算机速度

VB6“内存不足”可以在一台计算机上编译,但不能在另一台计算机上编译

如何修复运行时错误'7'的内存不足,即使保存,关闭和重新启动计算机后,该错误仍然存在

为分区主题而频繁滚动日志会导致运行kafka的计算机内存不足

SQL查询导致我的计算机内存不足

宏可在每台计算机上运行,但出现“1004 错误”的计算机除外

当计算机闲置几天后,Windows 10虚拟内存不足(可能是内存泄漏)

是否可以保证垃圾收集器在内存不足错误之前运行?

VBA宏在家用计算机上运行并在工作计算机上得到错误2147417848

VBA 宏在尝试保存时抛出错误(但仅在一台计算机上)

Mongodb在内存不足时终止

Fontconfig错误-“内存不足”

getDrawable()的内存不足错误

Java的内存不足的错误

蚂蚁内存不足错误

NetBeans内存不足错误

内存不足错误 imageview

ConnectionQueueStatsProvider的内存不足错误

ShowCaseView内存不足错误

64位计算机上的C ++内存对齐

具有大量内存的计算机上的OpenJDK MaxRAMPercentage

可能的注册表修复程序,显示“内存不足,无法运行Microsoft excel”错误

在内存vb.net中创建大列表时出现内存不足错误

SAS调用宏时内存不足

新问题-运行时错误-内存不足

运行时错误7:内存不足并加速代码