繁体   English   中英

在文件检查时出现错误 52 但未另存为……我错过了什么?

[英]Getting error 52 on file check but not save as… what am I missing?

我被困住了,多年来我没有做过任何 VBA 并且我没有在编程......我已经阅读了一大堆关于这个错误的资料,或者我错过了解决方案,因为我不明白或者我还没有找到相关的帖子,我无处可去!

关于为什么此代码的最后一行返回错误的任何想法? 运行时错误“52”:错误的文件名或编号

稍后,相同的变量适用于“另存为”,无论文件是否存在,都会发生错误。 我也不能跨过这个错误,如果这有什么不同,我必须把它注释掉,当我试图跨过时,它只会抛出同样的错误。

谢谢!

    Sub Macro1()
    '
    ' Macro1
    '
        Dim OldDateRange As Variant
        OldDateRange = Sheets(1).Name

        Sheets("Lookup").Select
        Cells.Find(What:=OldDateRange, After:=ActiveCell, LookIn:= _
            xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:= _
            xlNext, MatchCase:=False, SearchFormat:=False).Activate
        ActiveCell.Offset(1, 0).Range("A1").Select

        Dim NewDateRange As Variant
        NewDateRange = ActiveCell.Value

    Dim NewFile As Variant
    NewFile = "https://mywork.sharepoint.com/xxx/Timesheets/Overtime Approval Forms/Overtime approval form " & NewDateRange & ".xlsm"

    MsgBox (NewFile)

    Dim FileExists As String
    FileExists = Dir(NewFile)

感谢评论中的@braX,不是对我正在尝试的东西的修复,而是一种对我有用的不同方法,而不是检查文件的存在,尝试打开文件并使用成功关闭并报告它存在,一个继续创建新文件时出错。 我很欣赏这不适用于特别大的文件,但它非常适合我正在做的事情。

我认为错误发生在您发布的代码的最后一行。 原因是您的 PC 无法识别驱动器“https:”。 变量NewFile中的路径未映射到您的计算机上。 因此 Dir() function 无法访问它。

顺便说一句,如果您不知道要为其分配哪种类型的数据,则可以使用 Variant 数据类型的变量(尽管不知道自己想要什么似乎很有趣),但不这样做是不好的做法如果将字符串分配给变量,则声明一个字符串。 您留给 VBA 解释的越多,最终出错的机会就越大。 直言不讳,没有人会试图用它吃汤。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM