VBA - File di testo
Puoi anche leggere il file Excel e scrivere il contenuto della cella in un file di testo utilizzando VBA. VBA consente agli utenti di lavorare con file di testo utilizzando due metodi:
- Oggetto File System
- utilizzando il comando di scrittura
Oggetto File System (UST)
Come suggerisce il nome, gli FSO aiutano gli sviluppatori a lavorare con unità, cartelle e file. In questa sezione, discuteremo come utilizzare un UST.
Sr.No. | Tipo di oggetto e descrizione |
---|---|
1 | Drive Drive è un oggetto. Contiene metodi e proprietà che consentono di raccogliere informazioni su un'unità collegata al sistema. |
2 | Drives Drives è una collezione. Fornisce un elenco delle unità collegate al sistema, fisicamente o logicamente. |
3 | File Il file è un oggetto. Contiene metodi e proprietà che consentono agli sviluppatori di creare, eliminare o spostare un file. |
4 | Files File è una raccolta. Fornisce un elenco di tutti i file contenuti in una cartella. |
5 | Folder La cartella è un oggetto. Fornisce metodi e proprietà che consentono agli sviluppatori di creare, eliminare o spostare cartelle. |
6 | Folders Folders è una raccolta. Fornisce un elenco di tutte le cartelle all'interno di una cartella. |
7 | TextStream TextStream è un oggetto. Consente agli sviluppatori di leggere e scrivere file di testo. |
Guidare
Driveè un oggetto che fornisce l'accesso alle proprietà di una particolare unità disco o condivisione di rete. Le seguenti proprietà sono supportate daDrive oggetto -
- AvailableSpace
- DriveLetter
- DriveType
- FileSystem
- FreeSpace
- IsReady
- Path
- RootFolder
- SerialNumber
- ShareName
- TotalSize
- VolumeName
Esempio
Step 1- Prima di procedere allo scripting utilizzando FSO, dovremmo abilitare Microsoft Scripting Runtime. Per fare lo stesso, vai su Strumenti → Riferimenti come mostrato nello screenshot seguente.
Step 2 - Aggiungi "Microsoft Scripting RunTime" e fai clic su OK.
Step 3 - Aggiungi i dati che desideri scrivere in un file di testo e aggiungi un pulsante di comando.
Step 4 - Ora è il momento di Script.
Private Sub fn_write_to_text_Click()
Dim FilePath As String
Dim CellData As String
Dim LastCol As Long
Dim LastRow As Long
Dim fso As FileSystemObject
Set fso = New FileSystemObject
Dim stream As TextStream
LastCol = ActiveSheet.UsedRange.Columns.Count
LastRow = ActiveSheet.UsedRange.Rows.Count
' Create a TextStream.
Set stream = fso.OpenTextFile("D:\Try\Support.log", ForWriting, True)
CellData = ""
For i = 1 To LastRow
For j = 1 To LastCol
CellData = Trim(ActiveCell(i, j).Value)
stream.WriteLine "The Value at location (" & i & "," & j & ")" & CellData
Next j
Next i
stream.Close
MsgBox ("Job Done")
End Sub
Produzione
Quando si esegue lo script, assicurarsi di posizionare il cursore nella prima cella del foglio di lavoro. Il file Support.log viene creato come mostrato nella seguente schermata in "D: \ Try".
I contenuti del file sono mostrati nella seguente schermata.
Scrivi comando
A differenza di FSO, NON è necessario aggiungere alcun riferimento, tuttavia NON saremo in grado di lavorare con unità, file e cartelle. Saremo in grado di aggiungere semplicemente lo stream al file di testo.
Esempio
Private Sub fn_write_to_text_Click()
Dim FilePath As String
Dim CellData As String
Dim LastCol As Long
Dim LastRow As Long
LastCol = ActiveSheet.UsedRange.Columns.Count
LastRow = ActiveSheet.UsedRange.Rows.Count
FilePath = "D:\Try\write.txt"
Open FilePath For Output As #2
CellData = ""
For i = 1 To LastRow
For j = 1 To LastCol
CellData = "The Value at location (" & i & "," & j & ")" & Trim(ActiveCell(i, j).Value)
Write #2, CellData
Next j
Next i
Close #2
MsgBox ("Job Done")
End Sub
Produzione
Dopo aver eseguito lo script, il file "write.txt" viene creato nella posizione "D: \ Try" come mostrato nello screenshot seguente.
Il contenuto del file è mostrato nella seguente schermata.