По -долу ще разгледаме програма в 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. Изберете данните и щракнете върху командния бутон на листа.
Резултат: