【发布时间】:2020-09-11 22:37:01
【问题描述】:
我有一个关于 32 位和 64 位版本的 Excel 和 VBA 之间的差异的问题。
我正在使用 64 位 Office 365。 (我使用 64 位是因为我遇到了内存问题,并且作为测试,看看 64 位是否适用于我们公司)。我正在处理一个 Excel 文件,该文件有很多 VBA 代码,用于从 SQL 收集产品属性,从这些属性计算参数,并将所有内容输出到另一个 SQL 数据库。另外,Excel文件输出PDF文件。
Excel 文件存储为模板,以便用户可以打开模板并将新文件保存到各自的工作区。目前,用户正在使用 Office 365,32 位。
当我打开 Excel 模板时,Excel 会自行关闭。在计算新文件的参数之前似乎崩溃了。没有错误信息;在右下角的消息框中,我可以看到 Excel 没有进入计算阶段。
但是,当其他用户在 32 位 Excel 中打开文件时,一切正常。
我没有使用指针(没有 PtrSafe),也没有使用 LongLong 变量。 我也没有编译错误。 我目前正在重建 Excel 文件,方法是将其保存为没有宏的文件,然后复制 VBA 模块 - 另一个站点提到 VBA 代码可能已损坏。我在添加宏的过程中,再次弹出错误;我上次添加的 VBA 代码已经使用了大约一年,所以我很想将它排除为罪魁祸首。
你会建议我从哪里寻找问题?
【问题讨论】:
-
关于“我很想将其排除为罪魁祸首”-为什么?如果添加它会导致 Excel 崩溃,那么它可能是罪魁祸首(或者它与其他一些已添加的模块发生冲突)。如果您以不同的顺序添加模块并且在添加其他模块后发生崩溃,那么可能该模块是无罪的。
标签: excel vba 32bit-64bit