Níže se podíváme na program v Excel VBA že zapisuje rozsah aplikace Excel do textového souboru CSV (hodnota oddělená čárkami).
Situace:
Umístěte na list příkazové tlačítko a přidejte následující řádky kódu:
1. Nejprve deklarujeme proměnnou nazvanou myFile typu String, objekt nazvaný rng typu Range, proměnnou nazvanou cellValue typu Variant, proměnnou nazvanou i typu Integer a proměnnou nazvanou j typu Integer. Zde používáme proměnnou Variant, protože proměnná Variant může obsahovat jakýkoli typ hodnoty.
Dim myFile As String, rng As Range, cellValue As Variant, i As Integer, j As Integer
2. Musíme zadat úplnou cestu a název souboru.
myFile = Application.DefaultFilePath & "\ sales.csv"
Poznámka: Vlastnost DefaultFilePath vrací výchozí cestu k souboru. Chcete -li změnit výchozí umístění souboru, klikněte na kartě Soubor na Možnosti, Uložit.
3. Inicializujeme objekt rozsahu rng s vybraným rozsahem.
Nastavit rng = výběr
4. Přidejte následující řádek kódu:
Otevřete myFile pro výstup jako #1
Poznámka: toto prohlášení umožňuje zápis do souboru. Po zbytek našeho kódu můžeme soubor označit jako #1. Pokud soubor již existuje, bude odstraněn a bude vytvořen nový soubor se stejným názvem.
5. Spusťte dvojitou smyčku.
Pro i = 1 To rng.Rows.Count
Pro j = 1 až rng.Columns.Count
Poznámka: rng.Rows.Count vrací počet řádků (v tomto příkladu 17) a rng.Columns.Count vrací počet sloupců (v tomto případě 4).
6. Excel VBA zapíše hodnotu buňky do proměnné cellValue.
cellValue = rng.Cells (i, j) .Value
7. Přidejte následující řádky kódu pro zapsání hodnoty cellValue do textového souboru.
Pokud j = rng.Columns.Count Then
Napište č. 1, cellValue
Jiný
Napište č. 1, cellValue,
Konec If
Vysvětlení: kvůli příkazu If Then Else spustí Excel VBA nový řádek (Write #1, cellValue) pouze tehdy, když j se rovná počtu sloupců (poslední hodnota v řádku). Chcete -li hodnoty oddělit čárkou, použijte Write #1, cellValue, (čárkou).
8. Nezapomeňte uzavřít obě smyčky.
Další j
Příště já
9. Zavřete soubor.
Zavřít #1
10. Vyberte data a klikněte na příkazové tlačítko na listu.
Výsledek: