Mai jos vom analiza un program în Excel VBA acea scrie un interval Excel într-un fișier text CSV (valoare separată prin virgulă).
Situatie:
Plasați un buton de comandă pe foaia de lucru și adăugați următoarele linii de cod:
1. În primul rând, declarăm o variabilă numită myFile de tip String, un obiect numit rng de tip Range, o variabilă numită cellValue de tip Variant, o variabilă numită i de tip Integer și o variabilă numită j de tip Integer. Aici folosim o variabilă Variant deoarece o variabilă Variant poate conține orice tip de valoare.
Dim myFile As String, rng As Range, cellValue As Variant, i As Integer, j As Integer
2. Trebuie să specificăm calea completă și numele fișierului fișierului.
myFile = Application.DefaultFilePath & "\ sales.csv"
Notă: proprietatea DefaultFilePath returnează calea implicită a fișierului. Pentru a modifica locația implicită a fișierului, în fila Fișier, faceți clic pe Opțiuni, Salvați.
3. Inițializăm obiectul de rng cu intervalul selectat.
Set rng = Selection
4. Adăugați următoarea linie de cod:
Deschideți myFile pentru ieșire ca numărul 1
Notă: această declarație permite ca fișierul să fie scris în. Ne putem referi la fișier ca numărul 1 în restul codului nostru. Dacă fișierul există deja, acesta va fi șters și va fi creat un nou fișier cu același nume.
5. Porniți o buclă dublă.
Pentru i = 1 Pentru rng.Rows.Count
Pentru j = 1 Către rng.Columns.Count
Notă: rng.Rows.Count returnează numărul de rânduri (17 în acest exemplu) și rng.Columns.Count returnează numărul de coloane (4 în acest exemplu).
6. Excel VBA scrie valoarea unei celule în variabila cellValue.
CellValue = rng.Cells (i, j) .Value
7. Adăugați următoarele linii de cod pentru a scrie valoarea CellValue în fișierul text.
Dacă j = rng.Columns.Count Atunci
Scrieți # 1, CellValue
Altfel
Scrie # 1, CellValue,
End If
Explicație: datorită instrucțiunii If Then Else, Excel VBA începe doar o nouă linie (Write # 1, cellValue) atunci când j este egal cu numărul de coloane (ultima valoare dintr-un rând). Pentru a separa valorile cu o virgulă, utilizați Write # 1, CellValue, (cu o virgulă).
8. Nu uitați să închideți ambele bucle.
Următorul j
Apoi eu
9. Închideți fișierul.
Închideți numărul 1
10. Selectați datele și faceți clic pe butonul de comandă de pe foaie.
Rezultat: