Scrivi dati in un file di testo usando Excel VBA
Di seguito vedremo un programma in Excel VBA quello scrive un intervallo di Excel in un file di testo CSV (comma-separated-value).
Situazione:
Inserire un pulsante di comando nel foglio di lavoro e aggiungere le seguenti linee di codice:
1. Per prima cosa 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 qui una variabile Variant perché una variabile Variant può contenere qualsiasi tipo di valore.
2. Dobbiamo specificare il percorso completo e il nome file del file.
Nota: la proprietà DefaultFilePath restituisce il percorso del file predefinito. Il percorso della cartella che vedi quando apri o salvi un file.
3. Inizializziamo l'oggetto range rng con l'intervallo selezionato.
4. Aggiungi la seguente riga di codice:
Nota: questa istruzione consente di scrivere il file. Possiamo riferirci al file come numero 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.
For j = 1 To 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.
7. Aggiungere le seguenti righe di codice per scrivere il valore di cellValue nel file di testo.
Write #1, cellValue
Else
Write #1, cellValue,
End If
Spiegazione: a causa dell'istruzione If Then Else, Excel VBA avvia solo una nuova riga (Write # 1, cellValue) quando j è uguale al numero di colonne (ultimo valore di una riga). Per separare i valori con una virgola, usa Scrivi # 1, cellValue, (con una virgola).
8. Non dimenticare di chiudere entrambi i loop.
Next i
9. Chiudi il file.
10. Selezionare i dati e fare clic sul pulsante di comando sul foglio.
Risultato: