运行时错误 52 文件名或编号错误

问题描述 投票:0回答:6

我正在尝试运行 vba 代码来对 Excel 文件的文件夹执行许多操作。该代码是由不再在我公司工作的其他人编写的,但 VBA 脚本在上次运行时有效。现在,当我尝试运行它时,我不断收到运行时错误 52(“文件名或编号错误”)。有什么建议吗?

代码更长,但错误(根据调试器)突出显示如下:

Print #intFreeFile, _
    " *XXXXXXXXX  * * * Error in code 'main_ProcessBringFwd' " & Err & ": " & _
    Error(Err)

vba excel runtime
6个回答
2
投票

问题可能出在错误消息中。 打开代码并查找尝试读取或保存文件的命令。他们可能使用了无效的路径。

在你的代码中的某个地方可能有这样的东西:

Open file_name For Output As #intFreeFile

调试您的代码并检查“file_name”中的值(可能是其他变量名称)是否是有效的路径和有效的文件名。


1
投票

如果文件是网络文件,那么如果临时出现网络故障,程序可能无法找到该文件,我已经遇到过这个问题好几次了。

解决此类错误的方法是在打开文件之前检查驱动器/文件夹是否存在。


1
投票

如果目标目录不存在,或者您没有写入权限,则可能会发生这种情况


0
投票

我发现当我收到此错误消息时,是因为我试图在文件名中使用

:
。我一删除它,宏就完美运行了。我认为当涉及到特殊字符时可能会与代码发生冲突。


0
投票

大家好,我在尝试运行具有 Marco 来添加 Zip 文件的 Excel 工具时遇到了同样的错误。在 OneDrive 同步文件夹上。 - 不知道你们是否遇到这种情况,但 OneDrive 中有一项功能,您必须禁用或运行 OneDrive 未使用的同步文件夹之外的文件... - 在 OneDrive 设置下,转到“Office”选项卡并取消选中“使用 Office 应用程序同步我打开的 Office 文件”enter image description here


0
投票

我也遇到了这个问题,并找到了导致此错误消息的另一个原因。

我从中获取文件的数据库每天都有一个具有不同天气参数的文件。我将仔细检查每个文件,为所有值/天创建一个表。

我使用变量 intFileNumber 来计算我在文件夹中浏览的每个文件。然后就有了代码:

Open strFilePathAndName For Input As intFileNumber.

当 intFileNumber 达到大约时。 500 它停止并显示错误消息 52。修复方法是只覆盖每次迭代的文件编号。即:

Open strFilePathAndName For Input As #1.

=> 这样做是有道理的,哈哈...

© www.soinside.com 2019 - 2024. All rights reserved.