Excel工作表是做為文件在電腦中進(jìn)行保存的,其基礎(chǔ)原理就是二進(jìn)制數(shù)的排列組合,然后保存為表格文件。
本文介紹一下,如何利用一個(gè)對(duì)象,對(duì)電腦中的文件和文件夾進(jìn)行操作。
實(shí)際上,操作系統(tǒng)最基礎(chǔ)部分就是對(duì)磁盤(pán)中的數(shù)據(jù)進(jìn)行讀寫(xiě)操作,vba也給出了解決辦法。
而且應(yīng)用也十分簡(jiǎn)單。重點(diǎn)是要掌握一些基本的文件操作命令,那么使用起來(lái)就不難了。
示例,如下圖所示:
本示例將自動(dòng)提取當(dāng)前目錄下的文件夾,然后顯示到左側(cè)列表中,單擊文件夾名稱,右側(cè)列表框顯示出相應(yīng)目錄下的文件。
就是這么簡(jiǎn)單的一個(gè)功能,我們來(lái)看一下如何實(shí)現(xiàn)。
首先,我們用到了一個(gè)創(chuàng)建文件操作對(duì)象的功能:
Set fobj = CreateObject('Scripting.FileSystemObject')
以前文章中也介紹過(guò)此對(duì)象的創(chuàng)建方法。
FileSystemObject,中文含意為文件系統(tǒng)對(duì)象。
這個(gè)對(duì)象下面包含的所有磁盤(pán)文件目錄的一些操作功能。
本節(jié)只介紹如何對(duì)文件和文件夾進(jìn)行操作。
也就是其下的子集,F(xiàn)olders 和 Files對(duì)象。
利用 set xF=GetFolder(folderDir)語(yǔ)句,可以返回一個(gè)文件夾對(duì)象,本語(yǔ)句將返回文件夾對(duì)象為xF。folderDir為文件夾地址。
然后利用set xFiles=xF.Files 返回,文件夾下面的所有文件的對(duì)象集合。
如下圖所示:
代碼
返回并顯示文件夾信息代碼:
Sub ShowFolderInfo(folderDir) Dim fs, xf, xs Set fs = CreateObject('Scripting.FileSystemObject') Set xf = fs.GetFolder(folderDir) xs = xf.DateCreated & VBA.vbCrLf & _ xf.Name & VBA.vbCrLf & _ xf.shortpath & VBA.vbCrLf & _ xf.Size & VBA.vbCrLf & _ xf.Type MsgBox xs Dim fx As Object For Each fx In xf.subfolders Me.ListBox1.AddItem fx.Name, 0 Next fx Set fs = Nothing Set fx = Nothing Set xf = NothingEnd Sub
單擊列表顯示文件
Private Sub ListBox1_Click()Me.ListBox2.Clear Dim xPath As String, xFolder As String Dim fs, xf, xs, xfiles xPath = ThisWorkbook.Path & '\' xFolder = Me.ListBox1.List(Me.ListBox1.ListIndex) xPath = xPath & xFolder & '\' Set fs = CreateObject('Scripting.FileSystemObject') Set xf = fs.GetFolder(xPath) Set xfiles = xf.Files Dim x As Object For Each x In xfiles Me.ListBox2.AddItem x.Name, 0 Next x Set xfiles = Nothing Set xf = Nothing Set fs = NothingEnd Sub
對(duì)文件的操作,這個(gè)對(duì)象還是很用的,具體對(duì)文件進(jìn)行什么樣的操作,接下來(lái)的文章會(huì)有介紹,比如打開(kāi)、新建、復(fù)制、刪除等等。
聯(lián)系客服