Запись данных в текстовый файл с помощью Excel VBA
Ниже мы рассмотрим программу в Excel VBA, который записывает диапазон Excel в CSV (разделенный запятыми-значение) текстовой файл.
Ситуация:
Поместите командную кнопку на листе и добавьте строки следующего кода:
-
Во-первых, мы объявляем переменную Myfile типа String, объект под названием RNG типа Range, переменная называется CellValue типа Variant, переменная называется I типа Integer, а переменная с именем J типа Integer. Мы используем переменную Variant здесь, потому что переменная Variant может содержать значения любого типа.
Dim myFile As String, rng As Range, cellValue As Variant, i As Integer, j As Integer
-
Мы должны указать полный путь и имя файла.
myFile = Application.DefaultFilePath & "\sales.csv"
Примечание: свойство DefaultFilePath возвращает путь файла по умолчанию. Чтобы изменить местоположение файла по умолчанию, на вкладке Файл выберите команду Параметры, Сохранить.
-
инициализирует объект диапазон ГСЧ выбранного диапазона.
Set rng = Selection
-
Добавьте следующую строку кода:
Open myFile For Output As #1
Примечание: это утверждение позволяет файл для записи. Мы можем обратиться к файлу, как # 1 в течение остальной части кода. Если файл уже существует, то он будет удален и будет создан новый файл с таким же именем.
-
Запустите двойную петлю.
For i = 1 To rng.Rows.Count For j = 1 To rng.Columns.Count
Примечание: rng.Rows.Count возвращает количество строк (17 в этом примере) и rng.Columns.Count возвращает количество столбцов (4 в этом примере).
-
Excel VBA записывает значение ячейки переменной CellValue.
cellValue = rng.Cells(i, j).Value
-
Добавьте следующие строки кода, чтобы записать значение CellValue в текстовый файл.
If j = rng.Columns.Count Then Write #1, cellValue Else Write #1, cellValue, End If
Объяснение: из-за, если потом еще заявление, Excel VBA только начинает новую строку (запись # 1, CellValue), когда J равно числу столбцов (последнее значение в строке). Для того, чтобы отделить значения с запятой, использование записи # 1, CellValue, (с запятой).
-
Не забудьте закрыть обе петли.
Next j Next i
-
Закройте файл.
Close #1
-
Выберите данные и нажмите кнопку команды на листе.
Результат: