/ / Az adatok írása szöveges fájlba az Excel VBA használatával

Adatok írása szövegfájlba Excel VBA használatával

Az alábbiakban egy programot nézünk be Excel VBA hogy egy Excel tartományt ír ki egy CSV (vesszővel elválasztott értékű) szöveges fájlhoz.

Helyzet:

Adatok írása az Excel VBA szövegfájlba

Helyezzen egy parancsgombot a munkalapra, és adja hozzá a következő kódsorokat:

1. Először egy String típusú MyFile nevű változót deklarálunk, egy típus nevű rng nevű változót, Variant típusú cellValue nevű változót, egy Integer típusú i nevű változót, és egy integer típusú j változót. Itt használunk Variant változót, mert egy Variant változó bármilyen típusú értéket tartalmazhat.

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

2. Be kell állítanunk a fájl teljes elérési útját és fájlnevét.

myFile = Application.DefaultFilePath & "sales.csv"

Megjegyzés: az DefaultFilePath tulajdonság visszaadja az alapértelmezett fájlútvonalat. A mappa megnyitása vagy mentése közben megjelenő mappa elérési útja.

3. Inicializáljuk a rng tartományt a kiválasztott tartományban.

Set rng = Selection

4. Adja hozzá a következő kódsor:

Open myFile For Output As #1

Jegyzet: ez a nyilatkozat lehetővé teszi a fájl írását. A kódot a kód többi részében # 1-nek nevezzük. Ha a fájl már létezik, akkor törölni fog, és létrehoz egy új azonos nevű nevű fájlt.

5. Indítsa el a kettős hurkot.

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

Megjegyzés: Az rng.Rows.Count visszaadja a sorok számát (17 ebben a példában) és az rng.Columns.Count visszaadja az oszlopok számát (ebben a példában 4).

6. Az Excel VBA a cell értékét a változó cellValue értékre írja.

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

7. Adja hozzá a következő kódsorokat a cellValue értékének a szövegfájlba történő írásához.

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

Magyarázat: Az If Then Else utasítás alapján az Excel VBA csak egy új sort kezd (Write # 1, cellValue), amikor j értéke az oszlopok száma (az utolsó érték egy sorban). Az értékek vesszővel történő elválasztásához írja be a Write # 1, cellValue (vesszővel) értéket.

8. Ne felejtsd el lezárni mindkét hurkot.

    Next j
Next i

9. Csukja be a fájlt.

Close #1

10. Válassza ki az adatokat, és kattintson a parancs gombra a lapon.

Eredmény:

Adatok írása a szöveges fájl eredményére

Szintén olvasható: