Excel工作表是做为文件在电脑中进行保存的,其基础原理就是二进制数的排列组合,然后保存为表格文件。
本文介绍一下,如何利用一个对象,对电脑中的文件和文件夹进行操作。
实际上,操作系统最基础部分就是对磁盘中的数据进行读写操作,vba也给出了解决办法。
而且应用也十分简单。重点是要掌握一些基本的文件操作命令,那么使用起来就不难了。
示例,如下图所示:
本示例将自动提取当前目录下的文件夹,然后显示到左侧列表中,单击文件夹名称,右侧列表框显示出相应目录下的文件。
就是这么简单的一个功能,我们来看一下如何实现。
首先,我们用到了一个创建文件操作对象的功能:
Set fobj = CreateObject('Scripting.FileSystemObject')
以前文章中也介绍过此对象的创建方法。
FileSystemObject,中文含意为文件系统对象。
这个对象下面包含的所有磁盘文件目录的一些操作功能。
本节只介绍如何对文件和文件夹进行操作。
也就是其下的子集,Folders 和 Files对象。
利用 set xF=GetFolder(folderDir)语句,可以返回一个文件夹对象,本语句将返回文件夹对象为xF。folderDir为文件夹地址。
然后利用set xFiles=xF.Files 返回,文件夹下面的所有文件的对象集合。
如下图所示:
代码
返回并显示文件夹信息代码:
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
对文件的操作,这个对象还是很用的,具体对文件进行什么样的操作,接下来的文章会有介绍,比如打开、新建、复制、删除等等。
联系客服