VBA常用技巧代码解析
VBA常用技巧
目录
VBA常用技巧 ................................................................................................................................... 1
第10章 文件操作 ............................................................................................................... 2
技巧1 导入文本文件 ................................................................................................... 2
1-1 使用查询表导入 ............................................................................................ 2 1-2 使用Open 语句导入 ..................................................................................... 3 1-3 使用OpenText方法 ....................................................................................... 5 技巧2 将数据写入文本文件 ....................................................................................... 6
2-1 使用Print # 语句 ........................................................................................... 6 2-2 另存为文本文件 ............................................................................................ 8 技巧3 文件修改的日期和时间 ................................................................................... 9 技巧4 查找文件或文件夹 ......................................................................................... 10 技巧5 获得当前文件夹的名称 ................................................................................. 12 技巧6 创建和删除文件夹 ......................................................................................... 12 技巧7 重命名文件或文件夹 ..................................................................................... 13 技巧8 复制指定的文件 ............................................................................................. 14 技巧9 删除指定的文件 ............................................................................................. 15 技巧10 搜索特定的文件 ........................................................................................... 16 技巧11 使用WSH处理文件 .................................................................................... 18
11-1 获取文件信息 ............................................................................................. 18 11-2 查找文件 ..................................................................................................... 20 11-3 移动文件 ..................................................................................................... 21 11-4 复制文件 ..................................................................................................... 21 11-5 删除文件 ..................................................................................................... 22 11-6 创建文件夹 ................................................................................................. 23 11-7 复制文件夹 ................................................................................................. 24 11-8 移动文件夹 ................................................................................................. 25 11-9 删除文件夹 ................................................................................................. 25 11-10 导入文本文件 ........................................................................................... 26 11-11 创建文本文件 ........................................................................................... 28
1
VBA常用技巧代码解析
第10章 文件操作
技巧1 导入文本文件
在实际应用中,我们经常从软件中将数据导出为文本文件,在需要将这些文本文件导入到Excel中时可以使用以下的方法。
1-1 使用查询表导入
在Excel VBA中可以使用Add方法新建查询表后导入文本文件,如下面的代码所示。
#001 Sub AddQuery()
#002 Sheet1.UsedRange.ClearContents #003 With Sheet1.QueryTables.Add( _
#004 Connection:=\工资表.txt\#005 Destination:=Range(\#006 .TextFilePlatform = 936
#007 .TextFileCommaDelimiter = True #008 .Refresh #009 End With #010 End Sub
代码解析:
AddQuery过程使用QueryTable对象的Add方法新建查询表后将文本文件“工资表.txt”的内容导入到工作表中。
应用于QueryTable对象的Add方法新建一个查询表,返回QueryTable对象,该对象代表新建的查询表,语法如下:
expression.Add(Connection, Destination, Sql)
参数expression是必需的,返回一个QueryTables对象。
参数Connection是必需的,查询表的数据源。如果数据源是文本文件,是“TEXT;<文
2
VBA常用技巧代码解析
本文件路径和名称>”形式的字符串,其他数据源请参阅帮助。
参数Destination是必需的,Range类型,查询表目标区域左上角单元格用于放置生成的查询表的区域。目标区域必须在包含expression 指定的QueryTables对象的工作表上。
参数Sql是可选的,在ODBC数据源上运行的SQL查询字符串,当将QueryTable对象、文本文件、或是ADO或DAO Recordset对象指定为数据源时不能使用该参数。
第3行到第5行代码在工作表中建立对位于同一目录中的“工资表.txt”文本文件的查询,并将查询结果放置到工作表中。
第6行代码设置导入的文本文件的原始格式,QueryTables对象的TextFilePlatform属性返回或设置正向查询表中导入的文本文件的原始格式,默认值是在“文本导入向导”的“文件原始格式”选项中的当前设置。
第7行代码设置文本文件导入查询表中时,是以逗号作为分隔符。
第8行代码使用Refresh方法更新外部数据区域,应用于QueryTable对象的Refresh方法更新外部数据区域,语法如下:
expression.Refresh(BackgroundQuery)
参数expression是必需的,返回一个QueryTable对象。
参数BackgroundQuery是可选的的,只用于基于SQL查询结果的QueryTable。
1-2 使用Open 语句导入
使用Open语句输入文本文件,如下面的代码所示。
#001 Sub OpenText()
#002 Dim Filename As String #003 Dim myText As String #004 Dim mArr() As String #005 Dim i As Integer #006 Dim j As Integer
#007 Filename = ThisWorkbook.Path & \工资表.txt\#008 j = 1
#009 Sheet1.UsedRange.ClearContents #010 Open Filename For Input As #1 #011 Do While Not EOF(1) #012 Line Input #1, myText #013 mArr = Split(myText, \#014 For i = 0 To UBound(mArr)
3
VBA常用技巧代码解析
#015 Sheet1.Cells(j, i + 1) = mArr(i) #016 Next #017 j = j + 1 #018 Loop #019 Close #1 #020 End Sub
代码解析:
OpenText过程使用Open语句将文本“工资表.txt”的内容输入到工作表中。 第10行代码使用Open语句打开文本文件以完成对文本文件的输入。Open语句能够对文件输入/输出(I/O),语法如下:。
Open pathname For mode [Access access] [lock] As [#]filenumber [Len=reclength]
Pathname是必需的,指定文件名,该文件名可能还包括目录、文件夹及驱动器。 mode是必需的,指定文件方式,有Append、Binary、Input、Output、或Random方式。如果未指定方式,则以Random访问方式打开文件。
Access是可选的,说明打开的文件可以进行的操作,有Read、Write、或Read Write操作。
lock是可选的,说明限定于其它进程打开的文件的操作,有Shared、Lock Read、Lock Write、和Lock Read Write操作。
filenumber是必需的,一个有效的文件号,范围在 1 到 511 之间。使用FreeFile函数可得到下一个可用的文件号。
reclength是可选的,小于或等于 32,767(字节)的一个数。对于用随机访问方式打开的文件,该值就是记录长度。对于顺序文件,该值就是缓冲字符数。
第11行代码使用Do...Loop 语句重复执行第12行到第17行代码,直到文本文件的结尾。EOF函数返回一个Integer,它返回Boolean值True,表明已经到达为Random或顺序Input打开的文件结尾,语法如下:
EOF(filenumber)
参数filenumber是必需的,是一个Integer,包含任何有效的文件号。
第12行代码使用Line Input # 语句读入一行数据并将其赋予变量myText。Line Input # 语句从已打开的顺序文件中读出一行并将它分配给String变量,语法如下:
Line Input #filenumber, varname
Filenumber是必需的,任何有效的文件号。
varnamer是必需的,有效的Variant或String变量名。
第13行代码使用Split函数按逗号作为分隔符分开这行字符,赋值数组mArr。关于Split
4