Я пытаюсь прочитать текстовый файл (эти файлы создаются внешней программой, которая не может быть tweeked) с использованием следующего макроса.Ввод в конец файла VBA excel
While Not EOF(int_current_file)
Line Input #int_current_file, buf
If Left(buf, 1) <> "#" Then
buf1 = Split(buf, "=")
Print #int_master_file, CInt(Left(buf, 2)) & ";" & CInt(Mid(buf, 3, 4)) & ";" & CInt(Mid(buf, 7, 3)) & ";" & CInt(Mid(buf, 10, 1)) & ";" & CDbl(buf1(1)/100000000) & ";" & CDate(file_date) & ";" & Mid(file_name, 4, 3)
End If
'Line Input #int_current_file, buf
'Debug.Print Data
Wend
Однако во второй строке этого файла у меня есть следующие строки:
=01082013=01072013=31072013=06082013=1640=380441=21=000001249=#02IFS86.G84=IFSSS5=7ҐK!Ђi—Љ42ЃЁ4№{¤Хo$]ґ•Хp Ё1‹;±~†ЁRLЌг‰®ґн нќРР^±>_‰
Когда макрос пытается прочитать эту линию error 62
происходит Input past end of file
.
Как исправить эту проблему?
Не могли бы вы отправлять комментарии на этот мир кода: MyData = Space $ (LOF (1)) Get # 1,, MyData? –
'Space $ (LOF (1))' создает строку размером файла. [LOF] (http://msdn.microsoft.com/en-us/library/dtz29k5z%28v=vs.90%29.aspx), а 'Space $' - инициализировать строку до заданной длины. Кстати, это сработало для вас? –
Привет, я был потрясен сложностью импорта простого текстового файла в VBA !. Кажется, что легче извлекать данные прямо с веб-сайта, чем просто импортировать их из текстового файла. Ваше 20-е предложение, которое я пробовал, и это тоже не работает для меня. Я просто пытаюсь использовать важные текстовые файлы в качестве строки, чтобы я мог использовать функции «Mid» и «InStr» в результирующей строке. Любые разъяснения были бы более чем приветствуются. Если я попытаюсь поместить strData в TextBox, я получаю сообщение об ошибке: «type mismatch» Я предполагаю, что это связано с массивом, а не с типом строки? Любые решения? – SJDS