Gegevens naar een tekstbestand schrijven met Excel VBA - Eenvoudige Excel-macro's

Inhoudsopgave

Hieronder zullen we kijken naar een programma in Excel VBA Dat schrijft een Excel-bereik naar een CSV-tekstbestand (comma-separated-value).

Situatie:

Plaats een opdrachtknop op uw werkblad en voeg de volgende coderegels toe:

1. Eerst declareren we een variabele met de naam myFile van het type String, een object met de naam rng van het type Range, een variabele met de naam cellValue van het type Variant, een variabele met de naam i van het type Integer en een variabele met de naam j van het type Integer. We gebruiken hier een Variant-variabele omdat een Variant-variabele elk type waarde kan bevatten.

Dim myFile As String, rng As Range, cellValue As Variant, i As Integer, j As Integer

2. We moeten het volledige pad en de bestandsnaam van het bestand specificeren.

mijnBestand = Application.DefaultFilePath & "\sales.csv"

Opmerking: de eigenschap DefaultFilePath retourneert het standaard bestandspad. Als u de standaardbestandslocatie wilt wijzigen, klikt u op het tabblad Bestand op Opties, Opslaan.

3. We initialiseren het bereikobject rng met het geselecteerde bereik.

Stel rng = Selectie in

4. Voeg de volgende coderegel toe:

Open myFile voor uitvoer als #1

Opmerking: met deze verklaring kan naar het bestand worden geschreven. We kunnen naar het bestand verwijzen als #1 tijdens de rest van onze code. Als het bestand al bestaat, wordt het verwijderd en wordt een nieuw bestand met dezelfde naam gemaakt.

5. Start een dubbele lus.

Voor i = 1 Naar rng.Rows.Count
Voor j = 1 Naar rng.Columns.Count

Opmerking: rng.Rows.Count retourneert het aantal rijen (17 in dit voorbeeld) en rng.Columns.Count retourneert het aantal kolommen (4 in dit voorbeeld).

6. Excel VBA schrijft de waarde van een cel naar de variabele cellValue.

cellValue = rng.Cellen(i, j).Waarde

7. Voeg de volgende coderegels toe om de waarde van cellValue naar het tekstbestand te schrijven.

Als j = rng.Kolommen.Tellen Dan
Schrijf #1, celWaarde
Anders
Schrijf #1, celWaarde,
Stop als

Uitleg: vanwege de If Then Else-instructie begint Excel VBA alleen een nieuwe regel (Write #1, cellValue) wanneer j gelijk is aan het aantal kolommen (laatste waarde in een rij). Gebruik Write #1, cellValue, (met een komma) om de waarden te scheiden met een komma.

8. Vergeet niet beide lussen te sluiten.

 volgende j
volgende i

9. Sluit het bestand.

Sluiten #1

10. Selecteer de gegevens en klik op de opdrachtknop op het blad.

Resultaat:

U zal helpen de ontwikkeling van de site, het delen van de pagina met je vrienden

wave wave wave wave wave