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 VBAEsempio 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.