VBA Scrivi file di testo

Excel VBA Scrivi file di testo

In VBA possiamo aprire o leggere o scrivere un file di testo, per scrivere un file di testo si intendono i dati che abbiamo in un foglio Excel e li vogliamo in un file di testo o in un file di blocco note, ci sono due metodi da fare, uno è da utilizzando la proprietà dell'oggetto File System di VBA e un altro è utilizzando il metodo Apri e scrivi in ​​VBA.

Nella maggior parte delle società aziendali, una volta finalizzato il report, cercano di caricare il report nel database. Per caricare nel database usano il formato "File di testo" per aggiornare il database. Di solito copiamo i dati da Excel e li incolliamo in un file di testo. Il motivo per cui ci affidiamo ai file di testo perché sono molto facili da lavorare grazie ai loro modi leggeri e più semplici. Utilizzando la codifica VBA possiamo automatizzare l'attività di copia dei dati dal file Excel al file di testo. In questo articolo, ti mostreremo come copiare o scrivere dati da un file Excel a un file di testo utilizzando il codice VBA.

Come scrivere dati su file di testo usando VBA?

La scrittura di dati da Excel a testo è una codifica complessa e richiede un'ottima conoscenza della codifica VBA. Segui i passaggi seguenti per scrivere il codice VBA per copiare i dati da Excel a un file di testo.

Prima di mostrarti come scrivere il codice lascia che ti spieghi come aprire il file di testo usando un'istruzione open.

Sintassi di Open Text File

Apri [File Path], per [Mode], come [File Number]

Percorso file: il percorso del file che stiamo cercando di aprire sul computer.

Modalità: Modalità è il controllo che possiamo avere sull'apertura dei file di testo. Possiamo avere tre tipi di controllo sul file di testo.

  • Modalità di input: suggerisce il controllo "di sola lettura " del file di testo di apertura. Se usiamo "Input Mode" non possiamo fare nulla con il file. Possiamo solo leggere il contenuto del file di testo.
  • Modalità di output: utilizzando questa opzione possiamo scrivere il contenuto su di esso. Il punto che dobbiamo ricordare qui è che tutti i dati esistenti verranno sovrascritti. Quindi, dobbiamo diffidare della possibile perdita di vecchi dati.
  • Modalità Append: questa modalità è completamente l'opposto della modalità OutPut. Usando questo metodo possiamo effettivamente scrivere i nuovi dati alla fine dei dati esistenti nel file.

Numero file: conterà il numero del file di testo di tutti i file di testo aperti. Questo riconoscerà i numeri di file aperti in valori interi da 1 a 511. Assegnare il numero di file è complicato e porta a molta confusione. Per questo, possiamo usare la funzione File gratuita.

File gratuito restituisce il numero univoco per i file aperti. In questo modo possiamo assegnare il numero di file univoco senza alcun tipo di valori duplicati.

Puoi scaricare questo modello di file di testo di scrittura VBA qui - Modello di file di testo di scrittura VBA

Esempio 1

Seguire i passaggi seguenti per scrivere il codice per creare un nuovo file di testo.

Supponi di avere già un file di testo denominato "Hello.txt" nella memoria del tuo computer e ti mostreremo come scrivere i dati in esso.

Passaggio 1: dichiara la variabile

Dichiarare che la variabile contenga il percorso del file come String.

Codice:

 Sub TextFile_Example1 () Dim Path As String End Sub 

Passaggio 2: determinare il numero di file

Per determinare a quale numero di file ci riferiamo, dichiarare un'altra variabile come Integer.

Codice:

 Sub TextFile_Example1 () Dim Path As String Dim FileNumber As Integer End Sub 

Passaggio 3: assegnare il percorso del file

Ora per la variabile Path assegnare il percorso del file con un nome di file.

Codice:

 Sub TextFile_Example1 () Dim Path As String Dim FileNumber As Integer Path = "D: \ Excel Files \ VBA File \ Hello.txt" 'Cambia il percorso in base alle tue esigenze End Sub 

Passaggio 4: assegnare la funzione file gratuita

Ora per la variabile Numero file, assegnare la funzione "File libero" per memorizzare un numero di file univoco.

Codice:

 Sub TextFile_Example1 () Dim Path As String Dim FileNumber As Integer Path = "D: \ Excel Files \ VBA File \ Hello.txt" 'Cambia il percorso secondo i tuoi requisiti FileNumber = FreeFile End Sub 

Passaggio 5: Apri file di testo

Ora dobbiamo aprire il file di testo per lavorarci. Come ho spiegato, dobbiamo usare l'istruzione OPEN per aprire il file di testo.

Passaggio 6: utilizzare il metodo di stampa / scrittura

Una volta aperto il file, dobbiamo scrivere qualcosa al suo interno. Per scrivere nel file di testo è necessario utilizzare il metodo "Scrivi" o "Stampa".

Codice:

 Sub TextFile_Example1 () Dim Path As String Dim FileNumber As Integer Path = "D: \ Excel Files \ VBA File \ Hello.txt" 'Cambia il percorso secondo le tue esigenze FileNumber = FreeFile Apri percorso per output come FileNumber Print #FileNumber, " Benvenuto "Print #FileNumber", "Print #FileNumber," VBA "End Sub 

Per prima cosa, dobbiamo menzionare il numero del file (qui abbiamo assegnato il file tramite la variabile “FileNumber”), quindi dobbiamo aggiungere il contenuto che vogliamo aggiungere a un file di testo.

Passaggio 7: salvare e chiudere il file di testo

Una volta che il contenuto è stato scritto in un file di testo, dobbiamo salvare e chiudere il file di testo.

Codice:

 Sub TextFile_Example1 () Dim Path As String Dim FileNumber As Integer Path = "D: \ Excel Files \ VBA File \ Hello.txt" 'Cambia il percorso secondo le tue esigenze FileNumber = FreeFile Apri percorso per output come FileNumber Print #FileNumber, " Benvenuto "Print #FileNumber", "Print #FileNumber," VBA "Chiudi FileNumber End Sub 

Ora, esegui il codice manualmente o tramite il tasto di scelta rapida Excel F5, scriverà il contenuto menzionato nel file di testo menzionato.

Esempio n. 2

Ora vedremo come scrivere i dati del foglio Excel in un file di testo.

For this example, I have created simple data in excel like below.

Step 1: With the continuation of the old example define two more variables as Integer to find the last row and last column.

Code:

 Sub TextFile_Example2() Dim Path As String Dim FileNumber As Integer Dim LR As Integer Dim LC As Integer End Sub 

Step 2: Find the last used row and column in the worksheet.

Step 3: Now assign the file path and file number.

Step 4: Now use the OPEN statement to open the text file.

Step 5: We need to loop through rows and columns, so declare two more variables as Integer.

Step 6: Now open Loop to loop through the row (For next loop in VBA)

Step 7: Now to loop through columns open one more loop inside the existing loop.

Step 8: We need to write the same line of data until it reaches the last column. So for this apply IF statement in VBA.

Step 9: Now save and close the text file.

This code will write the details to a text file, but to open the text file after written we need to use the below code.

Code:

 Sub TextFile_Example2() Dim Path As String Dim FileNumber As Integer Dim LR As Integer Dim LC As Integer Dim k As Integer Dim i As Integer LR = Worksheets("Text").Cells(Rows.Count, 1).End(xlUp).Row LC = Worksheets("Text").Cells(1, Columns.Count).End(xlToLeft).Column Path = "D:\Excel Files\VBA File\Hello.txt" FileNumber = FreeFile Open Path For Output As FileNumber For k = 1 To LR For i = 1 To LC If i  LC Then Print #FileNumber, Cells(i, k), Else Print #FileNumber, Cells(i, k) End If Next i Next k Close FileNumber Shell "notepad.exe " & Path, vbNormalFocus End Sub 

So, run the code using the F5 key or manually then, it will copy the data like the below.