Запись текущих данных в текстовый файл

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

Листинг 3.54. Запись в текстовый файл

Sub SaveAsText()

Dim cell As Range

' Открытие файла для сохранения (имя файла соответствует

имени _

рабочей книги, но отличается расширением – TXT)

Open ThisWorkbook.Path & "" & ThisWorkbook.Name & «.txt» _

For Output As #1

' Запись содержимого заполненных ячеек таблицы в файл

For Each cell In ActiveSheet.UsedRange

If Not IsEmpty(cell) Then

Print #1, cell.Address, cell.Formula

End If

Next

' Не забываем закрывать файл

Close #1

End Sub

К аналогичному результату приведет использование такого макроса (он отличается тем, что учитывает национальные настройки) (листинг 3.55).

Листинг 3.55. Экспорт в текстовый файл

Sub SaveAsText1()

Dim cell As Range

' Открытие файла для сохранения (имя файла соответствует

имени _

рабочей книги, но отличается расширением – TXT)

Open ThisWorkbook.Path & "" & ThisWorkbook.Name & «.txt» _

For Output As #1

' Запись содержимого заполненных ячеек таблицы в файл

For Each cell In ActiveSheet.UsedRange

If Not IsEmpty(cell) Then

Print #1, cell.Address, cell.FormulaLocal

End If

Next

' Не забываем закрывать файл

Close #1

End Sub

В результате выполнения любого из указанных макросов будет создан текстовый файл, помещенный в тот же каталог, в котором находится текущая рабочая книга. Имя файла формируется следующим образом: если текущий файл называется Primer.xls, то имя созданного на его основе текстового файла будет Primer.xls.txt. В этом файле, помимо хранящихся на рабочем листе данных, содержатся координаты ячеек, в которых расположены эти данные.