Excel VBA - ошибка времени выполнения «53»: файл не найден. Но файл был найден - PullRequest
0 голосов
/ 14 ноября 2018

У меня есть лист Excel, который извлекает данные из папки, полной документов .txt.На прошлой неделе в пятницу это сработало.Ничего не изменилось.На этой неделе в понедельник я получаю сообщение об ошибке «53»: файл не найден.

Что интересно, когда я нажимаю «Отладка», он выделяет строку в моем коде, и когда я наводю курсор мыши наПеременная 'sFile', она сообщает мне имя файла, который, по-видимому, не может найти ... но он может знать имя этого файла только в том случае, если найдет его ... И да, я проверил, этот файл делаетсуществовать.

Лист Excel находится в H: \ Мои документы \ Отчеты Loma CW3 \

Файлы данных .txt находятся в H: \ Мои документы \ Отчеты Loma CW3 \ Статистика продукта \

Первые 3 файла, которые он должен извлекать:

- PR20180912T153019.txt
- PR20180913T070005.txt
- PR20180913T153002.txt

Как упомянуто выше, когда я отлаживаю код и наведите курсор мыши на «sFile» в строке «Открыть sFile для»Ввод как # 1 ", он говорит мне:

sFile = "PR20180912T153019.txt"

Что он мог знать, только если он успешно сканировал папку, так как я не жестко закодировал ни одно из этих имен файлов в.

Я попытался удалить этот файл, переименовав файл в слово типа «яблоко», проверил, стал ли он доступным только для чтения(Нету).Я здесь зациклен, потому что он работал как на прошлой неделе, и ничего не изменилось с того момента, когда я открыл его на этой неделе и попробовал.

Код ниже:

Private Sub CommandButton1_Click()

' Dim myFile As String
Dim text As String, textLine As String
Dim sFile As String, rowTarget As Long

rowTarget = 2

' myFile = Application.GetOpenFilename()

sFile = Dir("H:\My Documents\Loma CW3 Reports\Product Statistics\" & "*.txt*")
Do Until sFile = ""
    Open sFile For Input As #1
    Do Until EOF(1)
        Line Input #1, textLine
        text = text & textLine
    Loop
    Close #1

    Do stuff here

    rowTarget = rowTarget + 1
    sFile = Dir()
    text = ""
Loop
End Sub

1 Ответ

0 голосов
/ 14 ноября 2018

В итоге я указал каталог как отдельную переменную и добавил имя sFile к нему при открытии файла.

Dim directory As String

directory = "H:\My Documents\Loma CW3 Reports\Product Statistics\"
sFile = Dir(directory & "*.txt*")

Do Until sFile = ""
    Open (directory & sFile) For Input As #1
    blah blah blah

Спасибо @ comintern

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