/ / Skriv data til en tekstfil ved hjælp af Excel VBA

Skriv data til en tekstfil ved hjælp af Excel VBA

Nedenfor vil vi se på et program i Excel VBA at skriver et Excel-interval til en CSV-fil (kommasepareret-værdi) tekstfil.

Situation:

Skriv data til tekstfil i Excel VBA

Placer en kommandoknap på dit regneark og tilføj følgende kodelinjer:

1. Først erklærer vi en variabel kaldet myFile of Type String, en genstand kaldet rng af typen Range, en variabel kaldet cellValue of Type Variant, en variabel kaldet I af typen Integer og en variabel kaldet j af typen Integer. Vi bruger en variant variabel her, fordi en variant variabel kan holde enhver form for værdi.

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

2. Vi skal angive den fulde sti og filnavnet på filen.

myFile = Application.DefaultFilePath & "sales.csv"

Bemærk: Egenskaben DefaultFilePath returnerer standardfilbanen. Stien til den mappe, du ser, når du åbner eller gemmer en fil.

3. Vi initialiserer rækkeviddeobjektet rng med det valgte interval.

Set rng = Selection

4. Tilføj følgende kode linje:

Open myFile For Output As #1

Bemærk: Denne erklæring tillader filen at blive skrevet til. Vi kan henvise til filen som # 1 under resten af ​​vores kode. Hvis filen allerede eksisterer, slettes den, og der oprettes en ny fil med samme navn.

5. Start en Double Loop.

For i = 1 To rng.Rows.Count
    For j = 1 To rng.Columns.Count

Bemærk: rng.Rows.Count returnerer antallet af rækker (17 i dette eksempel) og rng.Columns.Count returnerer antallet af kolonner (4 i dette eksempel).

6. Excel VBA skriver værdien af ​​en celle til variablen celleValue.

cellValue = rng.Cells(i, j).Value

7. Tilføj følgende kodelinjer for at skrive værdien af ​​cellValue til tekstfilen.

If j = rng.Columns.Count Then
    Write #1, cellValue
Else
    Write #1, cellValue,
End If

Forklaring: På grund af If Then Else-udsagnet starter Excel VBA kun en ny linje (Skriv # 1, celleValue), når j er lig med antallet af kolonner (sidste værdi i en række). For at adskille værdierne med et komma, skal du bruge Skriv # 1, celleValue, (med komma).

8. Glem ikke at lukke begge løkker.

    Next j
Next i

9. Luk filen.

Close #1

10. Vælg dataene og klik på kommandoknappen på arket.

Resultat:

Skriv data til tekstfilresultat

Læs også: