U nastavku ćemo pogledati program u Excel VBA da zapisuje Excel raspon u CSV (tekstualnu datoteku odvojenu zarezima) tekstualnu datoteku.
Situacija:
Postavite naredbeni gumb na radni list i dodajte sljedeće retke koda:
1. Prvo, deklariramo varijablu pod nazivom myFile tipa String, objekt zvan rng tipa Range, varijablu koja se naziva cellValue tipa Variant, varijablu zvanu i tipa Integer i varijablu zvanu j tipa Integer. Ovdje koristimo varijablu Variant jer varijabla Variant može sadržavati bilo koju vrstu vrijednosti.
Dim myFile As String, rng As Range, cellValue As Variant, i As Integer, j As Integer
2. Moramo navesti puni put i naziv datoteke.
myFile = Application.DefaultFilePath & "\ sales.csv"
Napomena: svojstvo DefaultFilePath vraća zadanu stazu datoteke. Da biste promijenili zadano mjesto datoteke, na kartici Datoteka kliknite Opcije, Spremi.
3. Pokrećemo objekt raspona rng s odabranim rasponom.
Postavite rng = Odabir
4. Dodajte sljedeći kodni redak:
Otvorite myFile za izlaz kao #1
Napomena: ova izjava dopušta pisanje datoteke. Datoteku možemo označiti kao #1 tijekom ostatka našeg koda. Ako datoteka već postoji, bit će izbrisana i stvorit će se nova datoteka s istim imenom.
5. Pokrenite dvostruku petlju.
Za i = 1 Za rng.Rows.Count
Za j = 1 Za rng. Stupci.Broj
Napomena: rng.Rows.Count vraća broj redaka (17 u ovom primjeru), a rng.Columns.Count vraća broj stupaca (4 u ovom primjeru).
6. Excel VBA zapisuje vrijednost ćelije u varijablu cellValue.
cellValue = rng.Cells (i, j) .Vrijednost
7. Dodajte sljedeće retke koda da biste zapisali vrijednost cellValue u tekstualnu datoteku.
Ako je j = rng.Kolone.Prebroji Tada
Napišite #1, cellValue
Drugo
Napišite #1, cellValue,
Završi ako
Objašnjenje: zbog naredbe If Then Else, Excel VBA započinje novi redak (Write #1, cellValue) samo kada je j jednak broju stupaca (zadnja vrijednost u retku). Za odvajanje vrijednosti zarezom, koristite Write #1, cellValue, (sa zarezom).
8. Ne zaboravite zatvoriti obje petlje.
Sljedeće j
Sljedeći i
9. Zatvorite datoteku.
Zatvori #1
10. Odaberite podatke i kliknite gumb naredbe na listu.
Proizlaziti: