Как использовать код VBA для удаления пустых строк из текстового файла

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

Эта статья покажет вам, как удалить фиксированное количество пустых строк из текстового файла, используя здоровую кодировку VBA.

Открытие и чтение текстового файла

Логика кода заключается в чтении каждой строки файла и сохранении строки в текстовой строке, если она соответствует нашим критериям. Затем напишите текстовую строку обратно в новый файл.

Сначала мы получим доступ к объекту файловой системы (FSO) и откроем файл с именем «blanks.txt». Код доступа к файловой системе — это тип процедуры, которая может храниться в библиотеке кодов, чтобы ее можно было использовать в будущем.

Dim fso As Scripting.FileSystemObject

Set fso = New Scripting.FileSystemObject
Dim myFile As Object
Dim filePath As String

filePath = ActiveWorkbook.path & " files blanks.txt"
Установите myFile = fso.openTextFile (filePath)

Удаление пустых строк

Теперь мы можем прочитать каждую строку в файле, но сначала мы должны рассмотреть код, который нам нужен, чтобы отклонить пустые строки.

Мы начнем с определения нескольких переменных и присвоения им начальных значений.

"Присоединить строку к новому файлу?

Dim includeLine As Boolean

& # 39; Текстовая строка для записи прикрепленных строк
Dim allTxt как строка

& # 39; Количество пустых строк, включаемых в новый файл
Dim CountBlanks As Long

countBlanks = 1
includeBlanks = 0
includeLine = False

Первоначальная настройка пустых строк установлена ​​на 1, поэтому мы не беспокоим ни один абзац. Если бы мы хотели удалить любую пустую строку, мы установили бы переменную в 0.

Теперь мы можем прочитать файл и сообщить коду, какие строки сохранить в новом файле.

Выполнить в myFile.AtEndOfStream

includeLine = False

txt = myFile.ReadLine

По умолчанию для каждой строки не помещается в новый файл, если только он не соответствует критериям, указанным в нескольких последующих строках кода. Количество пустых строк подсчитывается до тех пор, пока не будет найдена непустая строка, а затем счетчик будет сброшен на ноль.

        Выберите Case Len (TXT)

Дело 0

Если countBlanks <includeBlanks, то includeLine = True

countBlanks = countBlanks + 1

Дело остальное

countBlanks = 0

includeLine = True

Готово Выбрать

Если строка соответствует нашим параметрам, мы добавляем ее с символом новой строки в строку txt и продолжаем цикл.

Если вы включите Line тогда

allTxt = allTxt & txt и vbCrLf
Конец, если
петля

После окончания чтения текстового файла закройте файл и введите текстовую строку в новый файл.

myFile.close

filePath = ActiveWorkbook.path & " files blanksRemoved.txt"
Установите myFile = fso.CreateTextFile (filePath)
myFile.Write allTxt
myFile.close
Установить fso = ничего

При таком редактировании файлов важно не заменять исходный файл в случае, если произойдет что-то непредвиденное и все данные будут потеряны. Даже если вы уверены, что код работает правильно, рекомендуется сделать копию, используя VBA, для защиты исходных данных.

резюме

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *