No.1 VBA用于文件管理,并不是被大多數(shù)人熟知,通過Excel進(jìn)行文件操作也是一件說難不難,說容易并不容易的事兒。 本節(jié)介紹一下如何對(duì)電腦文件進(jìn)行復(fù)制、移動(dòng)、刪除、等操作。 首先認(rèn)識(shí)一個(gè)對(duì)象。 File對(duì)象,翻譯過來就是文件對(duì)象。 可以對(duì)文件進(jìn)行復(fù)制、刪除、移動(dòng)、修改等等各種操作,并且可對(duì)提取文件的屬性。 下圖為對(duì)象的方法以及屬性,要重點(diǎn)記住,對(duì)文件進(jìn)行操作十分重要。 No.2 示例 對(duì)于文件操作,首先要對(duì)文件系統(tǒng)有一個(gè)初步了解,如果不清楚文件系統(tǒng)包含哪些內(nèi)容,那么建議別學(xué)File對(duì)象,真的很難。 如果對(duì)Dos系統(tǒng)或Linux系統(tǒng),熟練應(yīng)用文件操作,那么學(xué)習(xí)File對(duì)象就十分簡(jiǎn)單了。 下圖是圍繞File對(duì)象做出了一個(gè)示例,包含了大多數(shù)方法應(yīng)用和屬性提取,如果完全掌握,那么就對(duì)文件對(duì)象操作有了一個(gè)很全面的認(rèn)識(shí)。 左側(cè)按鈕分別執(zhí)行不同的功能。 右側(cè)表格是提取某個(gè)文件之后列出其文件信息,如創(chuàng)建日期目錄地址等等屬性。 下圖為執(zhí)行過程中選擇文件對(duì)話框。 No.3 代碼 如何創(chuàng)建File對(duì)象 Dim fs, fSet fs = CreateObject("scripting.FileSystemObject")Set f = fs.GetFile(FileName) 定義兩個(gè)變量,分別給變量賦值。 變量fs為定義的FileSystemObject對(duì)象提供對(duì)計(jì)算機(jī)文件系統(tǒng)的訪問權(quán)限,變量f返回一個(gè)Files對(duì)象。 其中FileSystemObject是一個(gè)重要的文件系統(tǒng)管理對(duì)象,也可以實(shí)現(xiàn)對(duì)文件的操作,但是其方法實(shí)在太多,本節(jié)不做介紹。 重點(diǎn)看一下其下的GetFile方法,此方法將返回一個(gè)File對(duì)象,也就是本節(jié)的主要內(nèi)容。 變量f就是要進(jìn)行各類文件操作的File對(duì)象。 函數(shù):返回一個(gè)File對(duì)象 Public Function GetFileObject() As Object '取文件返回File對(duì)象Dim FileName As StringWith Application.FileDialog(msoFileDialogFilePicker)If .Show = -1 Then.Filters.Clear.Filters.Add "文本文件", "*.txt".Title = "選擇文件"FileName = .SelectedItems(1)ElseSet GetFileObject = NothingExit FunctionEnd IfEnd WithDim fsSet fs = CreateObject("scripting.FileSystemObject")Set GetFileObject = fs.GetFile(FileName)Set fs = NothingEnd Function 上述函數(shù)將返回一個(gè)File對(duì)象,代碼執(zhí)行后將打開一個(gè)文件選擇器,選擇一個(gè)文本文件后返回被選文件對(duì)象,如果不選擇文件就返回一個(gè)空對(duì)象。 提取文件信息 Private Sub GetFileinfo() '提取文件信息Set f = GetFileObject'調(diào)用提取File對(duì)象函數(shù)If f Is Nothing Then GoTo Ex100'如果對(duì)象是Nothing退出Dim sh As Worksheet, cell As Range, xcell As RangeSet sh = ActiveSheetSet cell = sh.Range("C4:C15")Dim infoArr(0 To 11), i As IntegerFor i = 0 To cell.Rows.CountSelect Case iCase 0infoArr(0) = f.Attributes'文件屬性Case 1infoArr(1) = f.datecreated'創(chuàng)建日期Case 2infoArr(2) = f.datelastaccessedCase 3infoArr(3) = f.datelastmodifiedCase 4infoArr(4) = f.drive'驅(qū)動(dòng)器Case 5infoArr(5) = f.Name'文件名Case 6infoArr(6) = f.parentFolderCase 7infoArr(7) = f.Path'文件路徑Case 8infoArr(8) = f.shortnameCase 9infoArr(9) = f.shortpathCase 10infoArr(10) = f.Size'文件大小Case 11infoArr(11) = f.Type'文件類型End SelectNext iSet cell = cell.Item(1).Offset(0, 2).Resize(cell.Rows.Count, 1)cell = Application.WorksheetFunction.Transpose(infoArr)Ex100:Set f = NothingEnd Sub 完全理解并學(xué)會(huì)上面的代碼,就對(duì)文件操作有一個(gè)基本認(rèn)識(shí)了,在實(shí)踐過程中繼續(xù)學(xué)習(xí),很快就會(huì)熟悉操作計(jì)算機(jī)內(nèi)的文件信息。 制作一個(gè)文件管理系統(tǒng)就可以大顯身手了。 |
|