Нижче ми розглянемо програму в Excel VBA що записує діапазон Excel у текстовий файл CSV (розділений комами).
Ситуація:
Помістіть команду на робочому аркуші та додайте такі рядки коду:
1. По -перше, ми оголошуємо змінну 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
2. Нам потрібно вказати повний шлях та ім’я файлу.
myFile = Application.DefaultFilePath & "\ sales.csv"
Примітка: властивість DefaultFilePath повертає шлях до файлу за замовчуванням. Щоб змінити розташування файлу за умовчанням, на вкладці Файл натисніть Параметри, Зберегти.
3. Ми ініціалізуємо об'єкт діапазону rng вибраним діапазоном.
Встановити rng = Вибір
4. Додайте наступний рядок коду:
Відкрийте myFile для виведення як №1
Примітка: ця інструкція дозволяє записувати файл. У решті коду ми можемо називати файл №1. Якщо файл вже існує, його буде видалено, і буде створено новий файл з такою ж назвою.
5. Запустіть подвійну петлю.
Для i = 1 До rng.Rows.Count
Для j = 1 До rng.Columns.Count
Примітка: rng.Rows.Count повертає кількість рядків (17 у цьому прикладі), а rng.Columns.Count повертає кількість стовпців (4 у цьому прикладі).
6. Excel VBA записує значення комірки до змінної cellValue.
cellValue = rng.Cells (i, j) .Value
7. Додайте такі рядки коду, щоб записати значення cellValue у текстовий файл.
Якщо j = rng.Columns.Count Тоді
Напишіть номер 1, cellValue
Інакше
Напишіть номер 1, cellValue,
Закінчити Якщо
Пояснення: завдяки оператору If Then Else Excel VBA лише починає новий рядок (Write #1, cellValue), коли j дорівнює кількості стовпців (останнє значення в рядку). Щоб відокремити значення комами, скористайтеся командою Write #1, cellValue, (з комою).
8. Не забудьте закрити обидві петлі.
Далі j
Далі i
9. Закрийте файл.
Закрити №1
10. Виберіть дані та натисніть кнопку команди на аркуші.
Результат: