Excel 错误-52错误的文件名或编号

Excel 错误-52错误的文件名或编号,excel,vba,Excel,Vba,我正在尝试检查给定路径上的文件是否存在。我做了这个 Path1 = ws.[B3] If Len(Dir(Path1)) = 0 Then msgbox "File does not exist" exit sub end if 当路径包含未激活的驱动器号时,此代码失败并出现错误-52。例如,当我移动一些USB密钥时,我的机器将F驱动器重新标记为E驱动器。任何引用F的路径都会导致错误-52 有人能推荐一种更可靠的方法来检查在这种情况下不会失败的文件吗?试试看,即使是我的DVD驱动器

我正在尝试检查给定路径上的文件是否存在。我做了这个

Path1 = ws.[B3]
If Len(Dir(Path1)) = 0 Then
   msgbox "File does not exist"
   exit sub
end if
当路径包含未激活的驱动器号时,此代码失败并出现错误-52。例如,当我移动一些USB密钥时,我的机器将F驱动器重新标记为E驱动器。任何引用F的路径都会导致错误-52


有人能推荐一种更可靠的方法来检查在这种情况下不会失败的文件吗?

试试看,即使是我的DVD驱动器,它也不会引发任何错误(请参阅我在OP问题下的评论):


使用未映射的驱动器号时,我看不到该错误。我尝试了所有可能的驱动器号(a-Z),但我没有安装26个驱动器:)
Len()
如果驱动器号不存在,则始终返回0-->无错误。编辑:除了抛出错误52的DVD驱动器(D:)之外。有趣的是…您是否尝试使用不同的字母指向其他有效或无效文件?使用
Dir
,如果文件“无效”,它将只返回字符串“”。由于它不能与我的DVD驱动器一起使用,可能断开连接但仍在驱动器列表中的网络驱动器也会抛出错误52。如果在某些路径上仍有错误,解决方法是使用错误处理程序来捕获这些错误。
Sub drives()

    Dim FS
    Set FS = CreateObject("scripting.filesystemobject")

    Dim i As Integer
    For i = 0 To 25
        'This will print "True" or "False" in immediate window (Ctrl-G)
        Debug.Print FS.FileExists(Chr(65 + i) & ":\Filename.txt")
    Next i

End Sub