【VBA研究】VBA提供的文件操作

本文介绍了使用VBA进行文件操作的常见方法,包括创建和删除文件夹、复制文件、删除文件、重命名文件及判断文件存在性。通过具体示例展示了如何利用VBA内置函数实现这些操作,适用于需要批量处理文件的场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

作者:iamlaosong

最近一个学习VBA的同事问我如何用VBA修改文件名,我给他说了一下方法,顺便也整理一下常用的几种操作方法。

这儿说的文件操作是指操作系统级别的,不是打开文件,对文件内容操作。我们当然可以创建文件系统对象操作文件,但是,最简单的还是使用VBA提供的标准的文件操作功能。最常见的就是文件或文件夹的增、删、改。

1、创建和删除文件夹(增、删):

      创建:MkDir path,例如:MkDir ThisWorkbook.Path & "\Temp"

      删除:RmDir path,例如:RmDir ThisWorkbook.Path & "\Temp"

2、复制文件(增):FileCopy source, destination,例如:

      FileCopy ThisWorkbook.Path & "\old" , ThisWorkbook.Path & "\new"

3、删除文件(删):Kill pathname,例如:

      myFile = ThisWorkbook.Path & "\song.xls"

      If Dir(myFile) <> "" Then Kill myFile

4、重命名文件或者文件夹(改):Name oldpathname As newpathname,例如:

      Name ThisWorkbook.Path & "\old" As ThisWorkbook.Path & "\new"

5、最后说一下Dir这个函数,最常用的是判断文件或者文件夹是否存在,例如:

      if Dir(ThisWorkbook.Path & "\song.xls", vbNormal) <> "" then

其实这个函数功能很强大,可以根据需要,返回指定路径下所有文件名,对于处理多个文件特别有用。以前做过一个文字替换工具,替换文件夹下所有Word文件中的相应文字,就是用这个函数返回所有文件名的。

Dir[(pathname[, attributes])]

参数pathname是可选的,用来指定文件名的字符串表达式,可能包含目录或文件夹、以及驱动器。如果没有找到pathname,则会返回零长度字符串 ("")。

参数attributes是可选的,常数或数值表达式,其总和用来指定文件属性,如下表所示。如果省略,则会返回不包含属性的匹配文件。

常数

描述

vbNormal

0

(缺省) 指定没有属性的文件。

vbReadOnly

1

指定无属性的只读文件。

vbHidden

2

指定无属性的隐藏文件。

VbSystem

4

指定无属性的系统文件,在Macintosh中不可用。

vbVolume

8

指定卷标文件;如果指定了其它属性,则忽略。vbVolume 在Macintosh中不可用。

vbDirectory

16

指定无属性文件及其路径和文件夹。

vbAlias

64

指定的文件名是别名,只在Macintosh上可用。

注意 在第一次调用Dir函数时,必须指定pathname,否则会产生错误。下面是个例子:

Sub mydir()
    Dim mydir As String
    Dim Fno As Integer
    
    Fno = 1
    Range("A:A").ClearContents
    mydir = Dir(ThisWorkbook.Path & "\*.xls", vbNormal)
    Do While mydir <> ""
        Cells(Fno, 1) = mydir
        mydir = Dir
        Fno = Fno + 1
    Loop
End Sub

mydir过程使用Dir函数在代码所在工作簿的文件夹中查找所有的Excel文件,找到后写入到工作表的A列单元格中。Dir函数会返回匹配 pathname参数的第一个文件名,若想得到其他匹配pathname参数的文件名,需再一次调用Dir函数,且不要使用参数。如果已没有合乎条件的文件,则Dir函数会返回一个零长度字符串 ("")。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值