Запись текущих данных в текстовый файл
С помощью несложного трюка можно быстро записать все данные, хранящиеся на текущем рабочем листе, в текстовый файл. В листинге 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. В этом файле, помимо хранящихся на рабочем листе данных, содержатся координаты ячеек, в которых расположены эти данные.