Excel VBA 宏无法在同事的计算机上保存工作簿,但在我的计算机上很好

Posted

技术标签:

【中文标题】Excel VBA 宏无法在同事的计算机上保存工作簿,但在我的计算机上很好【英文标题】:Excel VBA macro failing to save workbook on coworker's computer, but fine on mine 【发布时间】:2021-07-13 22:04:30 【问题描述】:

我在尝试让一些宏和 VBA 脚本在新同事的计算机上运行时遇到问题。我多年来一直在我的机器和其他几个机器上使用相同的代码没有问题,但是当我的新分析师尝试运行它时,它会抛出一个错误,指出它无法保存文件。他可以毫无问题地手动保存文件,但运行脚本会引发错误。真正奇怪的部分是它列出了文件路径,但用看似随机的十六进制字节替换了文件名。

在另一个文件上,如果他打开它,关闭时保存或不保存,然后我打开文件并尝试使用宏保存它,它失败说“无法访问文件...”。如果我复制并粘贴文件,再次打开并运行宏,它会保存有问题的文件。

我们检查了权限和设置,没有发现两个系统之间的任何不同之处。我们都在虚拟机上。他的硬件津贴比我的少,但除此之外,它们都是由 IT 管理且相同的。我已经束手无策了......任何关于我悲伤的根源的建议都会有所帮助,即使不是解决方案。

【问题讨论】:

发布相关代码总是有助于提出建议... 【参考方案1】:

在尝试单步调试模式之前,我会检查几件事。

    同事没有目录的写权限(我想你说你已经检查过了) 新用户的信任中心设置不正确 文件 > 选项 > 信任中心 > 信任中心设置... > 宏设置 > 确保选中该框以信任 VBA 模型并且宏未被禁用 新用户没有引用相同的库。 Alt + F11 > 工具 > 参考... > 检查同事的库是否与您的库匹配 他使用的是新的/不同版本的 Excel 吗?当 Office 365 出现时,很多旧代码都被搞砸了。

检查设置后,我会问以下问题:

同事尝试运行宏时会抛出什么错误? 什么时候抛出错误?可能是在您尝试保存文件的同时,您的代码尝试编辑该文件(或有另一个文件卡在编辑中)。 我会看到文件名损坏的原因。听起来同事的机器正在寻找一些以某种方式被遗忘的内存或内存地址。就像代码引用了一个超出范围的变量一样。 在他的 VM 上启用了用户访问控制,以某种方式阻止他正确保存文件。 您的代码未正确退出 Excel 应用程序,因此它仍在同事计算机的后台运行。让它们在不保存文件的情况下打开/关闭,并检查任务管理器以查看 Excel 是否仍待确认

【讨论】:

以上是关于Excel VBA 宏无法在同事的计算机上保存工作簿,但在我的计算机上很好的主要内容,如果未能解决你的问题,请参考以下文章

VBA学习问题Excel2016无法保存宏文件的解决办法

在 Excel VBA 中使用表单另存为位置保存工作表

VBA 代码无法在启用宏的文件类型中运行

使用Excel VBA,如何将某一个工作表保存到新建的Excel中?

VBA Excel宏保存为带有日期的单元格的一部分

在 VBA 循环中保存 excel 文件