Excel VBA常用技巧 第10章 文件操作 联系客服

发布时间 : 星期六 文章Excel VBA常用技巧 第10章 文件操作更新完毕开始阅读0db3d7174b35eefdc8d33391

VBA常用技巧代码解析 TextCodepage, TextVisualLayout, Local)

其中参数Filename表示要保存的文件名。可包含完整路径。如果不指定路径,Microsoft Excel 将文件保存到当前文件夹中。

其中参数FileFormat指定保存文件时使用的文件格式,在本例中指定为xlCSV即保存为文本文件。

第12行代码使用Close方法关闭活动工作簿。

技巧3 文件修改的日期和时间

在VBA过程中如果需要获得文件最后修改的日期和时间,可以使用FileDateTime函数,如下面的代码所示。

#001 Sub myDateTime() #002 Dim Stmp As String #003 Dim myDateTime As Date

#004 Stmp = ThisWorkbook.Path & \#005 myDateTime = FileDateTime(Stmp)

#006 MsgBox Stmp & \最后修改时间是:\#007 End Sub

代码解析:

myDateTime过程使用消息框显示文件最后修改的日期和时间。

FileDateTime函数返回一个文件被创建或最后修改后的日期和时间,语法如下:

FileDateTime(pathname)

pathname 参数是必需的,用来指定文件名的字符串表达式。pathname 可以包含目录或文件夹、以及驱动器。

第4行代码使用变量Stmp保存代码所在工作簿的路径和名称。

第5行代码使用变量myDateTime保存FileDateTime函数返回的日期和时间。 运行myDateTime过程结果如图 3-1所示。

9

VBA常用技巧代码解析

图 3-1 文件最后修改的日期和时间

技巧4 查找文件或文件夹

在磁盘中查找文件或文件夹,可以使用Dir函数,如下面的代码所示。

#001 Sub mydir()

#002 Dim mydir As String #003 Dim b As Byte #004 b = 1

#005 Range(\

#006 mydir = Dir(ThisWorkbook.Path & \#007 Do While mydir <> \#008 Cells(b, 1) = mydir #009 mydir = Dir #010 b = b + 1 #011 Loop #012 End Sub

代码解析:

Mydir过程使用Dir函数在代码所在工作簿的文件夹中查找所有的Excel文件,找到后写入到工作表的A列单元格中。

第2行代码声明变量mydir保存返回的文件名称。 第3行代码声明变量b保存返回的文件数目。 第4行代码设置变量b的初始值。 第5行代码清除A列所有数据。

10

VBA常用技巧代码解析

第6行代码使用Dir函数在代码所在工作簿的文件夹中查找Excel文件。Dir函数返回一个String,用以表示一个文件名、目录名或文件夹名称,语法如下:

Dir[(pathname[, attributes])]

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

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

常数 vbNormal vbReadOnly vbHidden VbSystem vbVolume 值 0 1 2 4 8 描述 (缺省) 指定没有属性的文件。 指定无属性的只读文件。 指定无属性的隐藏文件。 指定无属性的系统文件,在Macintosh中不可用。 指定卷标文件;如果指定了其它属性,则忽略。vbVolume 在Macintosh中不可用。 vbDirectory vbAlias 16 64 指定无属性文件及其路径和文件夹。 指定的文件名是别名,只在Macintosh上可用。 表格 4-1 attributes设置值

注意 在第一次调用Dir函数时,必须指定pathname,否则会产生错误。

第7行到第11行代码将返回的文件名称写入到A列单元格中。Dir函数会返回匹配 pathname参数的第一个文件名,若想得到其他匹配pathname参数的文件名,需再一次调用Dir函数,且不要使用参数。如果已没有合乎条件的文件,则Dir函数会返回一个零长度字符串 (\。

运行Mydir过程工作表中如图 4-1所示。

图 4-1 使用Dir函数返回文件名称

11

VBA常用技巧代码解析

技巧5 获得当前文件夹的名称

在处理文件时经常需要获得当前文件夹的名称,此时可以使用CurDir函数,如下面的代码所示。

#001 Sub CurFolder() #002 MsgBox CurDir(\#003 End Sub

CurFolder过程使用消息框显示F盘中的当前文件夹名称。

CurDir函数返回一个Variant类型的文件路径。如果需要返回字符串类型的文件路径则使用CurDir$,语法如下:

CurDir[(drive)]

参数drive是可选的,字符串表达式,指定一个存在的驱动器。如果没有指定驱动器,或参数drive 是零长度字符串 (\,则CurDir函数会返回当前驱动器的路径。

假设示例文件保存在F盘的“VBA常用技巧\\示例文件\\第10章 文件操作”文件夹中,运行CurFolder过程结果如图 5-1所示。

图 5-1 获得当前文件夹的名称

技巧6 创建和删除文件夹

可以在程序运行时创建和删除文件夹,如下面的代码所示。

#001 Sub TempFolder()

#002 On Error Resume Next

#003 MkDir ThisWorkbook.Path & \#004 End Sub

代码解析:

12