VBA文本文件
VBA文本文件
我們可以讀取Excel文件,並寫入單元格中的內容到一個文本文件。這樣一來,VBA允許用戶使用文本文件的工作。我們可以測試文件使用工作的兩種方法
-
文件係統對象
-
使用Write命令
使用文件係統對象(FSO)
正如其名稱所說的,FSO對象幫助開發者使用驅動器,文件夾和文件的工作。在本節中,我們將討論如何使用FSO。
對象類型 | 描述 |
---|---|
Drive | 驅動器是一個對象。包含的方法和屬性,收集關於連接到係統的驅動器的信息 |
Drives | 硬盤是一個集合。它提供了連接到係統,無論是物理或邏輯的驅動器的列表。 |
File | 文件是一個對象。它包含的方法和屬性,使開發人員能夠創建,刪除或移動文件。 |
Files | 文件是一個集合。它提供了包含在文件夾內的所有文件的列表。 |
Folder | 文件夾是一個對象。它提供的方法和屬性,使開發人員能夠創建,刪除或移動文件夾。 |
Folders | 文件夾是一個集合。它提供了一個文件夾內的所有文件夾列表。 |
TextStream | 文本流是一個對象。它使開發人員能夠讀取和寫入文本文件。 |
驅動器
Drive是一個對象,它提供了訪問特定的磁盤驅動器或網絡共享的屬性。以下屬性是由驅動器對象支持:
-
AvailableSpace
-
DriveLetter
-
DriveType
-
FileSystem
-
FreeSpace
-
IsReady
-
Path
-
RootFolder
-
SerialNumber
-
ShareName
-
TotalSize
-
VolumeName
例子
第1步:在繼續使用FSO腳本,我們應該使Microsoft腳本運行。做同樣,導航到"Tools" >> "References" ,如下圖所示:
第2步:添加“Microsoft Scripting RunTime”,然後單擊確定。
第3步:添加數據,將它寫入一個文本文件,並添加一個命令按鈕。
第4步:現在是寫腳本的時候。
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
輸入
當執行腳本,請確保將光標放在工作表的第一個單元格。如在下麵創建Support.log文件 "D:\Try":
該文件的內容也被顯示如下:
使用寫命令
不像FSO,我們不需要添加任何引用,但是不能夠正常工作的驅動器,文件和文件夾。能夠隻流添加到文本文件中。
例子
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
輸出
如下圖所示當執行腳本時,在“D:\Try”創建“write.txt”文件。
該文件的內容也被顯示如下: