Nižšie sa pozrieme na program v Excel VBA že zapisuje rozsah Excelu do textového súboru CSV (hodnota oddelená čiarkou).
Situácia:
Na pracovný hárok umiestnite príkazové tlačidlo a pridajte nasledujúce riadky kódu:
1. Najprv deklarujeme premennú s názvom myFile typu String, objekt s názvom rng typu Range, premennú s názvom cellValue typu Variant, premennú s názvom i typu Integer a premennú s názvom j typu Integer. Tu používame premennú Variant, pretože premenná Variant môže obsahovať akýkoľvek typ hodnoty.
Dim myFile As String, rng As Range, cellValue As Variant, i As Integer, j As Integer
2. Musíme zadať úplnú cestu a názov súboru.
myFile = Application.DefaultFilePath & "\ sales.csv"
Poznámka: Vlastnosť DefaultFilePath vracia predvolenú cestu k súboru. Ak chcete zmeniť predvolené umiestnenie súboru, na karte Súbor kliknite na položku Možnosti, Uložiť.
3. Inicializujeme objekt rozsahu rng s vybratým rozsahom.
Nastaviť rng = výber
4. Pridajte nasledujúci riadok kódu:
Otvorte myFile pre výstup ako #1
Poznámka: toto vyhlásenie umožňuje zapisovať do súboru. Po zvyšok nášho kódu môžeme súbor označiť ako #1. Ak súbor už existuje, bude odstránený a bude vytvorený nový súbor s rovnakým názvom.
5. Spustite dvojitú slučku.
Pre i = 1 To rng.Rows.Count
Pre j = 1 až rng.Columns.Count
Poznámka: rng.Rows.Count vráti počet riadkov (v tomto prípade 17) a rng.Columns.Count vráti počet stĺpcov (v tomto prípade 4).
6. Excel VBA zapíše hodnotu bunky do premennej cellValue.
cellValue = rng.Cells (i, j) .Hodnota
7. Pridajte nasledujúce riadky kódu, aby ste zapísali hodnotu cellValue do textového súboru.
Ak j = rng.Columns.Count Then
Napíšte č. 1, hodnota bunky
Inak
Napíšte č. 1, hodnota bunky,
Koniec Ak
Vysvetlenie: kvôli príkazu If Then Else Excel VBA spustí nový riadok (Write #1, cellValue) iba vtedy, ak sa j rovná počtu stĺpcov (posledná hodnota v riadku). Ak chcete hodnoty oddeliť čiarkou, použite príkaz Write #1, cellValue ((čiarkou)).
8. Nezabudnite uzavrieť obe slučky.
Ďalej j
Ďalej i
9. Zatvorte súbor.
Zatvorte #1
10. Vyberte údaje a kliknite na príkazové tlačidlo na hárku.
Výsledok: