Scrivi dati su un file di testo usando Excel VBA - Easy Excel Macros

Sommario

Di seguito vedremo un programma in Excel VBA Quello scrive un intervallo di Excel in un file di testo CSV (valori separati da virgola).

Situazione:

Posiziona un pulsante di comando sul foglio di lavoro e aggiungi le seguenti righe di codice:

1. Innanzitutto, dichiariamo una variabile chiamata myFile di tipo String, un oggetto chiamato rng di tipo Range, una variabile chiamata cellValue di tipo Variant, una variabile chiamata i di tipo Integer e una variabile chiamata j di tipo Integer. Usiamo una variabile Variant qui perché una variabile Variant può contenere qualsiasi tipo di valore.

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

2. Dobbiamo specificare il percorso completo e il nome del file.

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

Nota: la proprietà DefaultFilePath restituisce il percorso file predefinito. Per modificare la posizione del file predefinita, nella scheda File, fare clic su Opzioni, Salva.

3. Inizializziamo l'oggetto intervallo rng con l'intervallo selezionato.

Imposta rng = Selezione

4. Aggiungi la seguente riga di codice:

Apri myFile per l'output come #1

Nota: questa istruzione consente la scrittura del file. Possiamo fare riferimento al file come #1 durante il resto del nostro codice. Se il file esiste già, verrà eliminato e verrà creato un nuovo file con lo stesso nome.

5. Avviare un doppio ciclo.

Per i = 1 a rng.Rows.Count
Per j = 1 A rng.Columns.Count

Nota: rng.Rows.Count restituisce il numero di righe (17 in questo esempio) e rng.Columns.Count restituisce il numero di colonne (4 in questo esempio).

6. Excel VBA scrive il valore di una cella nella variabile cellValue.

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

7. Aggiungere le seguenti righe di codice per scrivere il valore di cellValue nel file di testo.

Se j = rng.Columns.Count Allora
Scrivi #1, cellValue
Altro
Scrivi #1, cellValue,
Finisci se

Spiegazione: a causa dell'istruzione If Then Else, Excel VBA inizia solo una nuova riga (Write #1, cellValue) quando j è uguale al numero di colonne (ultimo valore in una riga). Per separare i valori con una virgola, utilizzare Write #1, cellValue, (con una virgola).

8. Non dimenticare di chiudere entrambi i loop.

 Avanti j
Avanti io

9. Chiudere il file.

Chiudi #1

10. Selezionare i dati e fare clic sul pulsante di comando sul foglio.

Risultato:

Aiuterete lo sviluppo del sito, condividere la pagina con i tuoi amici

wave wave wave wave wave