No.1
VBA用於文件管理,並不是被大多數人熟知,通過Excel進行文件操作也是一件說難不難,說容易並不容易的事兒。
本節介紹一下如何對電腦文件進行複製、移動、刪除、等操作。

首先認識一個對象。
File對象,翻譯過來就是文件對象。
可以對文件進行複製、刪除、移動、修改等等各種操作,並且可對提取文件的屬性。
下圖為對象的方法以及屬性,要重點記住,對文件進行操作十分重要。

No.2
示例
對於文件操作,首先要對文件系統有一個初步了解,如果不清楚文件系統包含哪些內容,那麼建議別學File對象,真的很難。
如果對Dos系統或Linux系統,熟練應用文件操作,那麼學習File對象就十分簡單了。
下圖是圍繞File對象做出了一個示例,包含了大多數方法應用和屬性提取,如果完全掌握,那麼就對文件對象操作有了一個很全面的認識。

左側按鈕分別執行不同的功能。
右側表格是提取某個文件之後列出其文件信息,如創建日期目錄地址等等屬性。
下圖為執行過程中選擇文件對話框。

No.3
代碼
如何創建File對象
Dim fs, f
Set fs = CreateObject("scripting.FileSystemObject")
Set f = fs.GetFile(FileName)定義兩個變數,分別給變數賦值。
變數fs為定義的FileSystemObject對象提供對計算機文件系統的訪問許可權,變數f返回一個Files對象。
其中FileSystemObject是一個重要的文件系統管理對象,也可以實現對文件的操作,但是其方法實在太多,本節不做介紹。
重點看一下其下的GetFile方法,此方法將返回一個File對象,也就是本節的主要內容。
變數f就是要進行各類文件操作的File對象。

函數:返回一個File對象
Public Function GetFileObject() As Object '取文件返回File對象
Dim FileName As String
With Application.FileDialog(msoFileDialogFilePicker)
If .Show = -1 Then
.Filters.Clear
.Filters.Add "文本文件", "*.txt"
.Title = "選擇文件"
FileName = .SelectedItems(1)
Else
Set GetFileObject = Nothing
Exit Function
End If
End With
Dim fs
Set fs = CreateObject("scripting.FileSystemObject")
Set GetFileObject = fs.GetFile(FileName)
Set fs = Nothing
End Function上述函數將返回一個File對象,代碼執行後將打開一個文件選擇器,選擇一個文本文件後返回被選文件對象,如果不選擇文件就返回一個空對象。
提取文件信息
Private Sub GetFileinfo() '提取文件信息
Set f = GetFileObject'調用提取File對象函數
If f Is Nothing Then GoTo Ex100'如果對象是Nothing退出
Dim sh As Worksheet, cell As Range, xcell As Range
Set sh = ActiveSheet
Set cell = sh.Range("C4:C15")
Dim infoArr(0 To 11), i As Integer
For i = 0 To cell.Rows.Count
Select Case i
Case 0
infoArr(0) = f.Attributes'文件屬性
Case 1
infoArr(1) = f.datecreated'創建日期
Case 2
infoArr(2) = f.datelastaccessed
Case 3
infoArr(3) = f.datelastmodified
Case 4
infoArr(4) = f.drive'驅動器
Case 5
infoArr(5) = f.Name'文件名
Case 6
infoArr(6) = f.parentFolder
Case 7
infoArr(7) = f.Path'文件路徑
Case 8
infoArr(8) = f.shortname
Case 9
infoArr(9) = f.shortpath
Case 10
infoArr(10) = f.Size'文件大小
Case 11
infoArr(11) = f.Type'文件類型
End Select
Next i
Set cell = cell.Item(1).Offset(0, 2).Resize(cell.Rows.Count, 1)
cell = Application.WorksheetFunction.Transpose(infoArr)
Ex100:
Set f = Nothing
End Sub
完全理解並學會上面的代碼,就對文件操作有一個基本認識了,在實踐過程中繼續學習,很快就會熟悉操作計算機內的文件信息。
製作一個文件管理系統就可以大顯身手了。
原創文章,作者:投稿專員,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/225423.html
微信掃一掃
支付寶掃一掃