VBA - Leggi file di testo riga per riga

Questo tutorial dimostrerà come leggere il contenuto dei file di testo riga per riga con VBA.

Possiamo leggere il file di testo come un intero file o riga per riga.

Leggi file di testo riga per riga

Il testo in un file di testo è solitamente composto da più righe, separate da delimitatori. Possono essere una virgola (“,”), una virgola con uno spazio (“, “), un punto e virgola (“;”), un punto e virgola con uno spazio (“; “), uno spazio (“ “), una tabulazione (vbTab ) o in rari casi qualsiasi altro carattere come una tilde (~). Le righe sono normalmente separate da un'interruzione di riga (vbCRLF).

Il modo più semplice per leggere un file di testo riga per riga nel nostro foglio di lavoro in VBA è selezionare la prima cella in cui vogliamo inserire il testo, quindi eseguire il codice seguente:

1234567891011 File di lettura secondario()Dim strFile As String, strLine As StringstrFile = "C:\Test\TestFile.txt"Apri strFile per l'input come #1Fai fino a EOF(1)Ingresso linea n. 1, strLineActiveCell = strLineActiveCell.Offset(1, 0).SelezionaCiclo continuoChiudi #1Fine sottotitolo

Questo metterà ogni riga del file di testo in una singola cella in Excel.

Possiamo anche leggere un file di testo in VBA utilizzando FileSystemObject. Nel codice seguente abbiamo utilizzato l'associazione tardiva con l'oggetto File System. Puoi anche creare un riferimento ad esso nel tuo progetto VBA. Vedi qui per maggiori informazioni.

123456789101112131415 Sub ReadTextFile()Dim strLine As StringDim FSO come oggettoDim TSO come oggettoImposta FSO = CreateObject("Scripting.FileSystemObject")Imposta TSO = FSO.OpenTextFile("C:\Test\TestFile.txt")Fai mentre non TSO.AtEndOfStreamstrLine = TSO.ReadLineActiveCell = strLineActiveCell.Offset(1, 0).SelezionaCiclo continuoTSO.ChiudiImposta TSO = NienteImposta UST = NienteFine sottotitolo

Possiamo creare un ciclo leggermente più complicato se vogliamo separare le linee in celle dai loro delimitatori. Qui abbiamo usato l'associazione anticipata nel codice e dichiarato l'oggetto File System.

123456789101112131415161718192021222324 Sub ReadTextFileWithSeparators()Dim StrLine As StringDim FSO come nuovo oggetto FileSystemDim TSO come oggettoDim StrLineElements come varianteIndice di attenuazione il più a lungoDim I As LongDelimitatore dim come stringaImposta FSO = CreateObject("Scripting.FileSystemObject")Imposta TSO = FSO.OpenTextFile("C:\Test\TestFile.txt")Delimitatore = ","Indice = 1Do While TSO.AtEndOfStream = FalseStrLine = TSO.ReadLineStrLineElements = Split(StrLine, Delimiter)Per i = LBound(StrLineElements) To UBound(StrLineElements)Celle(Indice, i + 1).Valore = StrLineElements(i)Avanti ioIndice = Indice + 1Ciclo continuoTSO.ChiudiImposta TSO = NienteImposta UST = NienteFine sottotitolo

Ciò comporterà la separazione delle linee in singole celle in Excel secondo il grafico sottostante.

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

wave wave wave wave wave