Книга: Excel. Трюки и эффекты
Экспорт и импорт данных
Экспорт и импорт данных
В данном разделе мы рассмотрим еще один способ экспортирования данных в текстовый файл, а также импорт данных из текстового файла.
Для решения поставленных задач нам потребуются два макроса: один – для экспорта данных, другой – для их импорта. Чтобы создать эти макросы, напишем в стандартном модуле редактора VBA код, который представлен в листинге 3.56.
Листинг 3.56. Экспорт и импорт данных
Sub ExportAsText()
Dim lngRow As Long
Dim intCol As Integer
' Открытие файла для сохранения
Open «C:primer.txt» For Output As #1
' Запись выделенной части таблицы в файл (построчно)
For lngRow = 1 To Selection.Rows.Count
' Запись содержимого всех столбцов строки lngRow
For intCol = 1 To Selection.Columns.Count
Write #1, Selection.Cells(lngRow, intCol).Value;
Next intCol
' Начнем новую строку в файле
Print #1, ""
Next lngRow
' Не забываем закрыть файл
Close #1
End Sub
Sub ImportText()
Dim strLine As String ' Одна строка файла
Dim strCurChar As String * 1 ' Анализируемый символ строки
файла
Dim strValue As String ' Значение для записи в ячейку
Dim lngRow As Long ' Номер текущей строки
Dim intCol As Integer ' Номер текущего столбца
Dim i As Integer
' Открытие импортируемого файла
Open «C:primer.txt» For Input As #1
' Считываем все строки файла и записываем данные, разделенные _
запятой, в ячейки таблицы (начиная с текущей ячейки)
Do Until EOF(1)
' Считываем строку из файла
Line Input #1, strLine
' Разбираем считанную строку
For i = 1 To Len(strLine)
strCurChar = Mid(strLine, i, 1)
If strCurChar = "," Then
' Найден разделитель столбцов – запятая. Запишем _
сформированное значение в ячейку
ActiveCell.Offset(lngRow, intCol) = strValue
intCol = intCol + 1
strValue = ""
ElseIf i = Len(strLine) Then
' Конец строки – запишем в таблицу последнее _
значение в строке (перед этим дополним его последним _
символом строки, кроме кавычки)
If strCurChar <> Chr(34) Then
strValue = strValue & strCurChar
End If
' Запись в таблицу
ActiveCell.Offset(lngRow, intCol) = strValue
strValue = ""
ElseIf strCurChar <> Chr(34) Then
' Добавление символа в формируемое значение ячейки _
(кавычки игнорируются)
strValue = strValue & strCurChar
End If
Next i
' Переход к новой строке таблицы
intCol = 0
lngRow = lngRow + 1
Loop
' Закрываем файл
Close #1
End Sub
После того как данный код написан, в окне выбора макросов появятся макросы ExportAsText и ImportText. В соответствии в кодом макроса экспорт данных будет осуществляться в файл primer.txt, который будет создан на диске С:. Из этого же файла будут импортированы данные при выполнении макроса ImportText.
Перед запуском макроса ExportAsText необходимо выделить диапазон, данные которого следует экспортировать в текстовый файл. Импортируемые данные будут помещены в то место рабочего листа, в котором установлен курсор (при этом ячейка с курсором будет являться левой верхней ячейкой импортированного диапазона).
В текстовом файле столбцы обозначаются символом, (запятая).
- Подсчет количества открытий файла
- Получение «закрытой» информации
- Произвольный текст в строке состояния
- Быстрое изменение заголовка окна
- Ввод данных с помощью диалогового окна
- Применение функции без ввода ее в ячейку
- Скрытие строк и столбцов от посторонних
- Быстрое выделение ячеек, расположенных через интервал
- Определение количества ячеек в диапазоне и суммы их значений
- Подсчет именованных объектов
- Быстрый поиск курсора
- Поиск начала и окончания диапазона, содержащего данные
- Трюки с примечаниями
- Дополнение панели инструментов
- Примеры создания панелей инструментов
- Формирование пользовательского меню
- Проверка наличия файла по указанному пути
- Автоматизация удаления файлов
- Перечень имен листов в виде гиперссылок
- Удаление пустых строк на рабочем листе
- Запись текущих данных в текстовый файл
- Экспорт и импорт данных
- Одновременное умножение всех данных диапазона
- Преобразование таблицы Excel в HTML-формат
- Поиск данных нештатными средствами
- Включение автофильтра с помощью макроса
- Трюки с форматированием
- Вывод информации о текущем документе
- Вывод результата расчетов в отдельном окне
- Вывод разрешения монитора
- Что открыто в данный момент?
- Создание бегущей строки
- Мигающая ячейка
- Вращающиеся автофигуры
- Вызов таблицы цветов
- Создание калькулятора
- Еще о создании пользовательских меню
- Склонение фамилии, имени и отчества
- Получение информации об используемом принтере
- Вывод текущей даты и времени
- Автоматическое создание документов Word на основе табличных данных Excel
- Создание списка панелей инструментов и контекстных меню
- Создание списка пунктов главного меню Excel
- Создание списка пунктов контекстных меню
- Отображение панели инструментов при определенном условии
- Скрытие и отображение панелей инструментов
- Создание меню на основе данных рабочего листа
- Создание контекстного меню
- Просмотр содержимого папки
- Получение информации о состоянии дисков
- Расчет среднего арифметического
- Вывод списка доступных шрифтов
- Создание раскрывающегося списка
- Добавление команды на вкладку
- include - Импорт текста из внешнего файла ActionScript
- Импорт листингов
- 3.2. Экспорт данных из ERwin в BPwin и связывание объектов модели данных со стрелками и работами
- 3.3. Создание сущностей и атрибутов BPwin и их экспорт в ERwin
- Резервное копирование базы данных InterBase
- Firebird РУКОВОДСТВО РАЗРАБОТЧИКА БАЗ ДАННЫХ
- Резервное копирование многофайловых баз данных
- Восстановление из резервных копий многофайловых баз данных
- Владелец базы данных
- ЧАСТЬ IV. База данных и ее объекты.
- Перевод базы данных InterBase 6.x на 3-й диалект
- Типы данных для работы с датой и временем