Excel VBA 利用FileSystemObject處理檔案
Excel VBA 利用FileSystemObject類處理檔案
FileSystemObject介紹
FileSystemObject是Windows Script Host Object Model物件模型的成員,能夠對檔案進行方便的基本操作,讀取,寫入,提取關鍵字等操作,讀取之後使用left(),right(),mid()函式可輕鬆的提取關鍵詞並寫入excel表格中,若與Microsoft VBScript Regular Expressions 5.5結合,可有更強的表現。
使用方法有前期繫結和後期繫結:
- 前期繫結 ,在Visual Basic編輯器中選擇工具選單>>引用,將彈出如下對話方塊,選中紅框中的選項,點選確定。
- 後期繫結方法是creatobject(“Scripting.Filesystemobject”)
FileSystemObject的應用
下面的一段程式碼展示了利用FileSystemObject類獲取指定目錄下的檔案和子目錄,並對每個檔案進行開啟讀取操作
Sub ReadTxtFile()
Dim fso As FileSystemObject
Dim fld As Folder '定義資料夾物件
Dim subflds As Folders '定義資料夾物件的集合
Dim fls As Files '定義檔案物件的集合
Dim f As File '定義檔案物件
Dim c As Integer
Dim dpath As String
Dim txtstr As TextStream '文字流物件
dpath = "C:\Users\Administrator\Desktop\shell" '指定目錄
' Set fso = New FileSystemObject '前期繫結設定fso物件
Set fso = creatobject("Scripting.Filesystemobject") '後期繫結
'Function GetFolder(FolderPath As String) As Folder '函式原型
Set fld = fso.GetFolder(dpath) '設定資料夾物件
Set subflds = fld.SubFolders() '設定子目錄物件集合
'Debug.Print subflds.Count '獲取子目錄的數量
For Each d In subflds
'Debug.Print d.Name '輸出每一個子目錄名
Next
'Function OpenTextFile(FileName As String, [IOMode As IOMode = ForReading], [Create As Boolean = False], [Format As Tristate = TristateFalse]) As TextStream
Set fls = fld.Files '設定檔案物件集合
' Debug.Print fls.Count '獲取檔案的數量
'遍歷所有檔案並讀取
For Each f In fls
Set txtstr = fso.OpenTextFile(fso.BuildPath(dpath, f.Name), ForReading, False, TristateFalse)
Debug.Print txtstr.ReadAll() '讀取全部文字內容
'一次讀取一行文字內容
' Do While txtstr.AtEndOfStream <> True
'Debug.Print txtstr.ReadLine()
' Loop
txtstr.Close '關閉文字流物件
Next f
'將物件值設為nothing
Set f = Nothing
Set fld = Nothing
Set fls = Nothing
Set fso = Nothing
End Sub
下面介紹筆者在使用其複製檔案時提示報錯的解決辦法
CopyFile的過程原型,共有3個引數,最後一個引數為True時會覆蓋目標路徑下的檔案
'Sub CopyFile(Source As String, Destination As String, [OverWriteFiles As Boolean = True])
使用方法: fso.CopyFile “原路徑/filename”, “目標路徑filename”, True
其中原路徑下的filename與目標路徑下的filename可以不相同,也可以相同,但不能省略,否則就會報錯。
CopyFolder 使用方法同上
fso.CopyFolder “原路徑/目錄”, “目標路徑目錄”, True
OpenTextFile函式說明
object.OpenTextFile(FileName As String, [IOMode As IOMode = ForReading], [Create As Boolean = False], [Format As Tristate = TristateFalse]) As TextStream
object:必選引數,為FileSystemObject對像
FileName:必選引數,要開啟的檔名
IOMode :可選引數,可選擇ForReading(以只讀方式開啟),ForWriting(以寫入模式開啟),ForAppending(以追加模式開啟)
Create :可選引數,預設為False;當原檔案不存在,此引數為True時,會自動建立檔案
Format :可選引數,TristateFalse(以ASCII格式開啟檔案),TristateTrue(以unicode格式開啟檔案),TristateUseDefault(系統自動選擇開啟方式)
BuildPath函式說明
使用方法object.BuildPath(Path As String, Name As String) As String
object:必選引數,為FileSystemObject對像
Path :必選引數,路徑,字元型別
Name :必選引數,檔案或資料夾名,字元型別
若覺得不錯,還請點贊,謝謝
相關文章
- VBA遍歷 Excel 合併到一個 Excel 檔案Excel
- Excel檔案 利用MySQL/Python 實現自動處理資料的功能ExcelMySqlPython
- Spring Batch + JPA 處理 Excel 檔案教程SpringBATExcel
- Linux中利用csvquote處理csv檔案Linux
- python 檔案處理Python
- python處理檔案Python
- python檔案處理Python
- VBA建立文字檔案、讀寫文字檔案
- 利用 python 遍歷多級資料夾處理不同檔案Python
- js讀取excel檔案,繪製echarts圖形---資料處理JSExcelEcharts
- 【Python基礎】Python處理Excel檔案,進行篩選資料、排序等操作及儲存新的Excel檔案PythonExcel排序
- python處理txt檔案Python
- window 批處理檔案
- Python之檔案處理Python
- Go xml檔案處理GoXML
- 金山文件怎麼匯出excel檔案 金山文件到處excel檔案的方法Excel
- python EXCEL處理PythonExcel
- FIN2020 Excel and VBAExcel
- php程式對微信你暱稱的表情處理匯出excel檔案PHPExcel
- node js 處理PDF檔案JS
- 控制檔案損壞處理
- Python批處理:檔案操作Python
- python ini 配置檔案處理Python
- Python如何處理檔案的?Python
- 使用 Python 處理 CSV 檔案Python
- ultracompare22,檔案處理
- java 檔案處理 工具類Java
- Python 如何處理大檔案Python
- 記一次vba+word+excel+powerbi處理問卷調研結果的經歷Excel
- Excel 資料處理Excel
- Python與Excel VBA比較PythonExcel
- 用 (Excel) VBA 讀取 OneNote!Excel
- 計算機程式的思維邏輯 (64) – 常見檔案型別處理: 屬性檔案/CSV/EXCEL/HTML/壓縮檔案計算機型別ExcelHTML
- java自己封裝檔案處理Java封裝
- 001.00 一般檔案處理
- Python筆記(五)——檔案處理Python筆記
- Hadoop小檔案的處理方式Hadoop
- 用c語言處理檔案C語言