036. Esportare file con VBA come CSV impostando delimitatore

Download PDF

Domanda:

Come posso fare a salvare il file con estensione .csv ma con separatore “;” invece della “,” ?

Risposta:

Non avendo mai avuto la necessità di risolvere questo problema, ho cercato la soluzione in rete
dove ho trovato il seguente articolo (I thank the author for sharing code):

http://www.erlandsendata.no/english/index.php?d=envbatextexportcsv

Vi spiego come applicare il codice:
1) in un modulo vuoto copiare la funzione scritta nell’articolo
2) lanciare la funzione specificandone gli argomenti in base alle vostre esigenze

Call ExportRangeAsDelimitedText(ThisWorkbook.Name, _
 "ExportSheet", "A1:B2", ThisWorkbook.Path & "\TEST.csv", ";", True, True, False)

“ThisWorkbook.name”                    > nome del FILe contenente i dati
“ExportSheet”                                  > nome del FOGLIO contenente i dati
“A1:B2”                                            > intervallo che si vuole esportare nel file csv
ThisWorkbook.Path & “\TEST.csv” > percorso e nome del file csv da creare
“;”                                                     > il tipo di separatore da utilizzare

Apparentemente il file non è un csv, ma se provate a salvarlo come txt vedrete che i dati sono separati dal “;”

A voi il file:
APRI

Per poter copiare sheet con un numero di righe e colonne variabili e non essere costretti a modificare il range oggetto della funzione è necessario apportare alcun modifiche alla funzione originale:

1) bisogna dichiarare SourceAddress non come String ma come Range
2) sostituire “Range(SourceAddress)”  con “SourceAddress)”

Fatto ciò, quando si lancia la funzione, si identificano l’ultima riga e l’ultima colonna non vuota del foglio a copiare, e si sostituisce

Call ExportRangeAsDelimitedText(ThisWorkbook.Name, _
 "ExportSheet", "A1:B2", ThisWorkbook.Path & "\TEST.csv", ";", True, True, False)

con

Call ExportRangeAsDelimitedText(ThisWorkbook.Name, _
    "ExportSheet", Range(Cells(1, 1), Cells(Last_Row, Last_Col)), ThisWorkbook.Path & "\TEST.csv", ";", True, True, False)

 

A voi il file aggiornato:
APRI

Riccardo Vincenti

The following two tabs change content below.