VBA - Scrivi su file di testo

Questo tutorial dimostrerà come scrivere su file di testo usando VBA.

Scrivi su un file di testo

I codici sottostanti usano il FileSystemOggetto. Per utilizzarlo, sarà necessario impostare un riferimento alla libreria runtime di script VB.

Scrivi in ​​un nuovo file di testo

Con il CreaFileTesto metodo di FileSystemOggetto puoi creare e quindi aggiungere contenuto a un file di testo:

123456789 Sub FSOCreateAndWriteToTextFile()Dim FSO come nuovo oggetto FileSystemImposta FSO = CreateObject("Scripting.FileSystemObject")Imposta FileToCreate = FSO.CreateTextFile("C:\Test\TestFile.txt")FileToCreate.Write "linea di prova"FileToCreate.CloseFine sottotitolo

Si prega di notare che il contenuto non sarà racchiuso tra virgolette.

Scrivi su file di testo esistente

Per scrivere su un file di testo esistente puoi usare il Apri file di testo metodo di FileSystemOggetto insieme a Per scrivere modalità.

123456789 Sub FSOWriteToTextFile()Dim FSO come nuovo oggetto FileSystemImposta FSO = CreateObject("Scripting.FileSystemObject")Imposta FileToWrite = FSO.OpenTextFile("C:\Test\TestFile.txt", ForWriting)FileToWrite.Write "linea di prova"FileToWrite.CloseFine sottotitolo

Si prega di notare che non è necessariamente necessario FileSystemObject per scrivere su un file di testo esistente. L'esempio sopra è mostrato in un altro modo in questo codice di seguito (vedi altro esempio nella sezione Intervallo di dati su file di testo):

123456789 Sub WriteToTextFile()Dim FileName As StringFileName = "C:\Test\TestFile.txt"Apri nome file per output come #1Stampa n. 1, "linea di prova"Chiudi #1Fine sottotitolo

Si noti che l'utilizzo del comando Scrivi invece di Stampa comporterà il contenuto aggiunto racchiuso tra virgolette. Avere entrambi i comandi nella tua macro

12 Scrivi n. 1, "riga di prova n. 1"Stampa n. 1, "linea di prova n. 2"

risulterà in un file di testo come questo:

Programmazione VBA | Il generatore di codice funziona per te!

Aggiungi a file di testo

Modificando la modalità nel codice sopra in ForAppending, è possibile aggiungere una riga alla fine del file di testo:

1 Imposta FileToWrite = FSO.OpenTextFile("C:\Test\TestFile.txt", ForAppending)

Metodo WriteLine

Questo metodo aggiunge la stringa di input come riga separata al contenuto esistente.

Metodo di scrittura

La stringa di input viene aggiunta sulla stessa riga del contenuto esistente.

Stanco di cercare esempi di codice VBA? Prova AutoMacro!

ScriviRighe Vuote

Questo metodo accetta come parametro il numero di righe vuote da scrivere nel file di testo.

Questo codice di seguito illustra la differenza tra i diversi metodi di scrittura:

12345678910111213 Sub WriteMethods()Dim FSO come nuovo oggetto FileSystemImposta FSO = CreateObject("Scripting.FileSystemObject")Imposta FileToWrite = FSO.OpenTextFile("C:\Test\TestFile.txt", ForAppending)FileToWrite.Write "linea di test n. 1"FileToWrite.Write "linea di prova n. 2"FileToWrite.WriteBlankLines (3)FileToWrite.WriteLine "linea di prova n. 3"FileToWrite.WriteLine "linea di prova n. 4"FileToWrite.CloseFine sottotitolo

E il risultato:

Programmazione VBA | Il generatore di codice funziona per te!

Intervallo di dati su file di testo

Se desideri generare un intervallo di dati dal foglio di lavoro in un file di testo, puoi utilizzare questo codice:

12345678910111213141516171819 Sub OutputToTextFile()Dim FileName As String, LineText As StringDim MyRange As Range, i, jFileName = "C:\Test\TestFile.txt" 'puoi specificare qui il nome del file di testo che vuoi creareApri nome file per output come #1Imposta MyRange = Range("data") 'presuppone che tu abbia un intervallo di dati denominato "data" nel tuo foglio di lavoroPer i = 1 a MyRange.Rows.CountPer j = 1 a MyRange.Columns.CountLineText = IIf(j = 1, "", LineText & ",") & MyRange.Cells(i, j) 'la creazione del file di testo avrà un separatore di virgolaAvanti jStampa n. 1, LineText 'usando il comando Scrivi invece di Stampa si tradurrà in avere i dati tra virgolette nel file di testo di outputAvanti ioChiudi #1Fine sottotitolo

Da array a file di testo

Puoi anche salvare la tua serie di dati in un file di testo come questo:

12345678910111213141516 Sub SaveArrayToTextFile()Dim MyArray As VariantDim FSO come nuovo oggetto FileSystemImposta FSO = CreateObject("Scripting.FileSystemObject")MyArray = Array(Array("00", "01"), Array("10", "11"), Array("20", "21"))Imposta FileToCreate = FSO.CreateTextFile("C:\Test\TestFile.txt")Per n = 0 a UBound(MyArray)FileToCreate.WriteLine MyArray(n)(0) & "," & MyArray(n)(1)ProssimoFileToCreate.CloseFine sottotitolo

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

wave wave wave wave wave