Записване на данни в текстов файл с помощта на Excel VBA - Лесни макроси на Excel

Съдържание

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

Резултат:

Така ще помогнете за развитието на сайта, сподели с приятелите си

wave wave wave wave wave