VBA 对 文件和文件夹的操作


我们在使用Excel VBA进行处理数据时,或多或少会涉及到如何操作文件和文件夹。本节将重点讲述如何新建、打开、删除复制、移动和重命名文件和文件夹操作等。

对于文件和文件夹操作,我们一般通过下面方法:
。VB命令
。EXCEL对象
。引用其他动态库对象
。API函数


在这里,我们尽可能通过不同的方法来展示如何操作文件和文件夹。注意,这里所涉及的文件一般以Excel为主。

对于如何运用文件之间的处理,如,文本文件、WORDACCESSPPTEXCEL之间的互访与查询,我们将在下节中讲解。

在本节开始之前,我们需要预备的知识点:
1、如何引用动态工程库。
打开VBE-工具-引用
选择Microsoft Scripting Runtime动态库
下面我们将会频繁用到Scripting.FileSystemObject对象来操作文件和文件夹。
另,此scrrun.dll动态库还包含了Scripting.Dictionary字典对象。

2、前期绑定和后期绑定
我们知道,VB是面向对象化编程,MS提供很多的DLL动态链接库,通过这些对象,我们可以轻松地完成任务。我们可以通过前期绑定或后期绑定来引用DLL库。

1)前期绑定。如同我们在上面用手动引用动态工程库方式,在编译代码前,我们就完成了的绑定。绑定之后,写入下面代码,创建和引用对象:

Sub BandObject()

Dim fso As Scripting.FileSystemObject

 


Set fso = New Scripting.FileSystemObject
DIM FSO NEW Scripting.FileSystemObject

 


End Sub
2)后期绑定。使用CreateObject函数,绑定某一个对象。此时,我们只有在程序运行时,绑定才有效,如,
Sub CrtObject()

Dim ObjFso As Object


Set ObjFso = CreateObject("Scripting.FileSystemObject")

 


End Sub
3、小结:
1)、前期和后期绑定区别在于定义方式和创建方式不同。
2)、前期绑定的优势在于,可以使用自动列出成员方式,查看对象的方法和属性;而后期绑定无法使用。
3)、小心后期绑定的写法。不是所有的后期绑定都是和前期绑定的对象写法一致。如,对象库:Microsoft Shell Controls And Automation
前期绑定:

Dim oShell As Shell32.Shell


Set oShell = New Shell32.Shell


后期绑定:

Dim oShell As Object


Set oShell = CreateObject("Shell.Application")

一、文件操作

1、新建Excel文件


Excel对象:Add方法

2、打开文件

1)、EXCEL对象:Open方法
直接打开一个工作簿。
expression.Open(FileName, UpdateLinks, ReadOnly, Format, Password, WriteResPassword, IgnoreReadOnlyRecommended, Origin, Delimiter, Editable, Notify, Converter, AddToMru, Local, CorruptLoad, OpenConflictDocument)

 

2)、Excel对象:OpenText


3)、Office对象:FileDialog
通过浏览方式打开文件



4)、API函数方式
打开所有类型的文件

 

1、保存文件

1)、Excel对象:Save
Sub SaveWorkbook()

ThisWorkbook.Save


End Sub

2)、Excel对象:SaveAs
Sub SaveAsWorkbook()

Dim strFileName As String


strFileName = ThisWorkbook.Path & "/test.xls"


On Error Resume Next


ThisWorkbook.SaveAs strFileName

End Sub

3)、Excel对象:SaveCopyAs
Sub SaveCopyAsWorkbook()

Dim strFileName As String


strFileName = ThisWorkbook.Path & "/test.xls"


On Error Resume Next


ThisWorkbook.SaveCopyAs strFileName

End Sub

2、判断文件夹是否存在
1)、VB命令:Dir()

2)、FileSystemObject对象:FileExists方法

 

1、建立文件的桌面快捷方式

WScript 对象:CreateShortCut方法

2、移动文件

1)、FileSystemObject对象:MoveFilet

2)、Office对象:Name

1、复制文件

1)、Office对象:FileCopy


2)、FileSystemObject对象:CopyFile


2、关闭文件
Excel对象:Close方法
Sub CloseWorkbook()

ThisWorkbook.Close False


End Sub

 

1、文件重命名
Office对象:Name


删除文件

1)、VB语句:Kill


2)、FileSystemObject对象:DeleteFile方法

10、文件自杀
VB语句:Kill


 

 

二.文件夹操作

1、新建文件夹

2、打开文件夹

1)、Shell



2)引用Microsoft Shell Controls And Automation动态库



1)后期绑定方式,选择文件夹



2、复制文件夹
FileSystemObject对象:CopyFolder

1、移动文件夹
FileSystemObject对象:MoveFolder



2、删除文件夹
VB语句:RmDir

Shell语句

FileSystemObject对象:DeleteFolder

1、获取父文件夹名
FileSystemObject对象:ParentFolder

VBA Split函数

2、文件夹重命名
FileSystemObject对象:Folder.name

VB语句:Name


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值