Как я могу записать в текстовый файл надежно от Excel VBA?

Я пытаюсь использовать Excel VBA для записи в текстовый файл. Я делаю несколько из них:

MyFile1 = "C:\outputFromExcel1.txt"
fnum1 = FreeFile()
Open MyFile1 For Output As fnum1

и затем при записи в них как это:

Print #fnum1, text

Все переменные в вышеупомянутом объявляются только с Dim. Я пишу сотни строк в файлы и, очень редко, строки являются усеченными - т.е. концы обрубаются. Существует ли лучший способ записать в файл в Excel VBA?

Править: Я только что понял, что это всегда - последние строки, которые будут записаны, которые усеченные. Таким образом, я предполагаю, что должен закрыть или сбросить файлы так или иначе?

13
задан HenricAbsolom 21 June 2010 в 14:46
поделиться

3 ответа

Вы можете использовать Close #fnum1, чтобы закрыть хэндл файла, и он должен промыть оставшееся содержимое буфера.

15
ответ дан 1 December 2019 в 22:38
поделиться

Не рассматривали ли вы возможность записать текст на другой лист (или в другую рабочую книгу) и затем использовать:

ActiveWorkbook.SaveAs Filename:="C:\MyFile.txt", FileFormat:=xlText

Не уверен, что это даст лучшие результаты (в плане производительности и/или форматирования), но, возможно, стоит попробовать.

1
ответ дан 1 December 2019 в 22:38
поделиться

Да, вам следует закрывать файлы с помощью метода Close . Я не уверен, что это вызывает проблемы, но вы должны делать это в любом случае.

Если вы много работаете с файлами в своем коде VBA, возможно, стоит взглянуть на использование FSO (FileSystemObject), я думаю, что изначально он был предназначен для того, чтобы VBScript мог обрабатывать файлы, но я предпочитаю его встроенным VB6 и VBA. в обработке файлов. См. здесь для получения более подробной информации (на одной из этих страниц также есть большой пример, демонстрирующий, как делать большинство вещей, которые вам нужны).

4
ответ дан 1 December 2019 в 22:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: