Ошибка 52 при проверке файла, но не как ... что мне не хватает? - PullRequest
0 голосов
/ 04 мая 2020

Я застрял, я не делал 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)

Ответы [ 2 ]

1 голос
/ 05 мая 2020

Благодаря @braX в комментариях, не исправление того, что я пытался, а другой метод, который должен работать для меня, вместо того, чтобы проверять существование файла, пытаться открыть файл и использовать успех, чтобы закрыть и сообщить о нем существует ошибка для продолжения создания нового файла. Я ценю, что это не будет работать гладко с особенно большими файлами, но идеально подходит для того, что я делаю.

0 голосов
/ 04 мая 2020

Я предполагаю, что ошибка возникает в последней строке вашего опубликованного кода. Причина в том, что ваш P C не может определить диск "https:". Путь в вашей переменной NewFile не отображается на вашем компьютере. Поэтому функция Dir () не может получить к ней доступ.

Кроме того, допустимо использовать переменную типа данных Variant, если вы не знаете, какой тип данных вы хотите назначить (хотя кажется смешным, что никто не знает, чего хочет), но это плохая практика - не объявлять строку, если строка будет присвоена переменной. Чем больше вы оставите до VBA для интерпретации, тем больше вероятность того, что в конце концов будет допущена ошибка. Назовите вещи своими именами, и никто не будет пытаться есть суп с этим.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...