大家好,我们今日讲解“VBA信息获取与处理”教程中第十八个专题“FSO对象对文件及文件夹的处理”的第二节“利用FSO对象操作文件”,这个专题是非常实用的知识点,希望大家能掌握利用。教程会提供配套的程序文件。
代码的讲解:(略)
一步步操作下去,又会回到原点。
本节知识点回向:
① 本例中分别利用了操作文件的那些方法?
② 在利用上述方法的之前要做什么?
本讲代码参考文件:018工作表.xlsm
有启发 点在看,转给朋友 约作者 请留言,直接交流
第二节 利用FSO对象操作文件
大家好,我们继续讲解FSO对象的应用,今日的内容是利用FSO对象操作文件,对于文件的操作,我们这讲讲解如何复制、移动和删除,对于读写的操作,我将在后面的章节中做专门的讲解。1 FSO对象操作文件的基本语句
为了达到操作文件的目的,我们仍是要先学习一下基本的操作语句,这些是应用的基础。 1)CopyFile方法,将一个或多个文件从一个位置复制到另一个位置。 语法:object.CopyFile source, destination, [ overwrite ] 参数: object 必需,始终是FileSystemObject的名称。 source 必需,字符串文件规范,可以包括通配符来代表要复制的一个或多个文件。 destination 必需,要将 source 中的文件复制到的字符串目标。不能使用通配符。 overwrite 可选。布尔值,指示是否覆盖现有文件。如果为 True,则覆盖文件,如果为 False,则不覆盖文件。默认为 True。请注意,如果 destination 具有只读属性集,则不管 overwrite 值是什么,CopyFile都将失败。 备注:通配符只能在 source 参数的最后路径组件中使用。例如,可以使用:FileSystemObject.CopyFile "c:\mydocuments\letters\*.doc", "c:\tempfolder\" 但不能使用: FileSystemObject.CopyFile "c:\mydocuments\*\R1???97.xls", "c:\tempfolder" 2)MoveFile方法,将一个或多个文件从一个位置移动到另一个位置。 语法:object.MoveFile source, destination 参数: object 必需,是FileSystemObject的名称。 source 必需。要移动的一个或多个文件的路径,source 参数字符串只能在最后一个路径组件中包含通配符。 destination 必需,一个或多个文件要移动到的路径,destination 参数不能包含通配符。 备注:如果source包含通配符或destination以路径分隔符 (**) 结束, 则假定destination指定要在其中移动匹配文件的现有文件夹。否则会将 destination 假定为要创建的目标文件的名称。不论是哪种情况,在移动单个文件时均会发生三件事情: 如果 destination 不存在,则会移动该文件。这是通常的情况。 如果 destination 是现有文件,则会出现错误。 如果 destination 是一个目录,则会出现错误。 如果 source 中使用的通配符与任何文件都不匹配,也会出现错误。MoveFile方法会在它遇到第一个错误时停止。不会尝试回滚在错误发生之前所做的任何更改。 提示信息:只要操作系统支持,此方法就允许在卷之间移动文件。 3)DeleteFile方法,删除指定文件。 语法:object.DeleteFilefilespec, [ force ] 参数: Object必需,始终是FileSystemObject的名称。 filespec必需,要删除的文件的名称。filespec可以在最后的路径组件中包含通配符。 force可选,若要删除带有只读属性集的文件,则 Boolean 值为 True;否则为 False(默认)。 备注:如果未找到匹配的文件,则将出现错误。DeleteFile方法在遇到第一个错误时停止。不会尝试回滚或撤消在出现错误之前已进行的任何更改。2 FSO对象操作文件的代码实例
为了实现操作文件,我给出了下面的代码: Sub mynzA() '使用FSO对象操作文件 Dim objFso As Object strPath = ThisWorkbook.Path&Application.PathSeparator '建立FSO引用 Set objFso = CreateObject("Scripting.FileSystemObject") If objFso.FileExists(strPath& "018文本测试.txt") Then '复制文件 objFso.CopyFilestrPath& "018文本测试.txt", strPath& _ "018TEMP\018文本测试2.txt" MsgBox "018TEMP文件夹下018文本测试2.txt已经复制完成" '移动文件 objFso.MoveFilestrPath& "018TEMP\018文本测试2.txt", _ strPath& "018文本测试1.txt" MsgBox "018TEMP文件夹下018文本测试2.txt已经移出文件夹" '删除文件 objFso.DeleteFilestrPath& "018文本测试1.txt" MsgBox "018文本测试1.txt已经删除" End If Set objFile = Nothing Set objFso = Nothing MsgBox "OK!" End Sub 代码截图:![b80d4bfed78f868fccc1619c191b98e1.png](https://img-blog.csdnimg.cn/img_convert/b80d4bfed78f868fccc1619c191b98e1.png)
3 FSO对象操作文件代码的实现效果
我们点击运行按钮,我们会看到下面的截图:![b64bcedef66c2a2231e51a2c6bd94912.png](https://img-blog.csdnimg.cn/img_convert/b64bcedef66c2a2231e51a2c6bd94912.png)
![f08308c861999424d782564150d3c3a5.png](https://img-blog.csdnimg.cn/img_convert/f08308c861999424d782564150d3c3a5.png)
![6d0f9a49bd56779fcc0657998dd28a2d.png](https://img-blog.csdnimg.cn/img_convert/6d0f9a49bd56779fcc0657998dd28a2d.png)
积木编程的思路内涵:
在我的系列书籍中一直在强调“搭积木”的编程思路,这也是学习利用VBA的主要方法,特别是职场人员,更是要采用这种方案。其主要的内涵: 1 代码不要自己全部的录入。你要做的是把积木放在合适的位置然后去修正代码,一定要拷贝,从你的积木库中去拷贝,然后修正代码,把时间利用到高效的思考上。 2 建立自己的“积木库”。平时在学习过程中,把自己认为有用的代码放在一起,多积累,在用到的时候,可以随时拿来。你的积木库资料越多,你做程序的思路就会越广。![6d0f9a49bd56779fcc0657998dd28a2d.png](https://img-blog.csdnimg.cn/img_convert/6d0f9a49bd56779fcc0657998dd28a2d.png)
VBA的应用界定及学习教程:
VBA是利用Office实现个人小型办公自动化的有效手段(工具)。这是我对VBA的应用界定。在取代OFFICE新的办公软件没有到来之前,谁能在数据处理方面做到极致,谁就是王者。其中登峰至极的技能非VBA莫属! 我记得20年前自己初学VBA时,那时的资料甚少,只能看源码自己琢磨,真的很难。20年过去了,为了不让学习VBA的朋友重复我之前的经历,我根据自己多年VBA实际利用经验,推出了六部VBA专门教程,目前教程均通过32位和64位两种OFFICE系统测试。 第一套:VBA代码解决方案是VBA中各个知识点的讲解,教程共147讲,覆盖绝大多数的VBA知识点,提供的程序文件更是一座不可多得的代码宝库,是初学及中级人员必备教程;目前这套教程提供的版本是修订第二版,程序文件通过32位和64位两种OFFICE系统测试。 第二套:VBA数据库解决方案数据库是数据处理的专业利器,教程中详细介绍了利用ADO连接ACCDB和EXCEL的方法和实例操作,适合中级人员的学习。目前这套教程提供的是修订第一版教程,程序文件通过32位和64位两种OFFICE系统测试。 第三套:VBA数组与字典解决方案 数组和字典是VBA的精华,字典是VBA代码水平提高的有效手段,值得深入的学习,是初级及中级人员代码精进的手段。目前这套教程提供的版本是修订第一版,程序文件通过32位和64位两种OFFICE系统测试。 第四套:VBA代码解决方案之视频是专门面向初学者的视频讲解,可以快速入门,更快的掌握这门技能。这套教程是第一套教程(修订一版)的视频讲解,听元音更易接受。这套教程还会额外提供通过32位和64位两种OFFICE系统测试的程序文件。 第五套:VBA中类的解读和利用 这是一部高级教程,讲解类的虚无与肉身的度化,类的利用虽然较少,但仔细的学习可以促进自己VBA理论的提高。这套教程的领会主要是读者的领悟了,领悟一种佛学的哲理。目前这套教程提供的版本是修订第一版,程序文件通过32位和64位两种OFFICE系统测试。 第六套教程:《VBA信息获取与处理》,这是一部高级教程,涉及范围更广,实用性更强,面向中高级人员。教程共二十个专题,包括:跨应用程序信息获得、随机信息的利用、电子邮件的发送、VBA互联网数据抓取、VBA延时操作,剪切板应用、Split函数扩展、工作表信息与其他应用交互,FSO对象的利用、工作表及文件夹信息的获取、图形信息的获取以及定制工作表信息函数等等内容。程序文件通过32位和64位两种OFFICE系统测试。 上述教程的学习顺序:1→3→2→6→5或者4→3→2→6→5。提供的程序文件更是一座巨大的代码库,供读者使用,如需要可以WeChat: NZ9668![a98fdb0165097cf35320ab52bec4ebcb.png](https://img-blog.csdnimg.cn/img_convert/a98fdb0165097cf35320ab52bec4ebcb.png)
学习VBA是个过程,也需要经历一种枯燥的感觉
“众鸟高飞尽,孤云独去闲。相看两不厌,只有敬亭山”。学习的过程也是修心的过程,修一个平静的心。在代码的世界中,心平静了,心情好了,身体自然而然就好。心静则正,内心里没有那么多邪知邪见,也就没有那么多妄想。利人就是利己。我的教程助力给正在努力的朋友。 “水善利万物而不争”,绵绵密密,微则无声,巨则汹涌。学习亦如此,知道什么是自己所需要的,不要蜷缩在一小块自认为天堂的世界里,待到暮年时再去做自欺欺人的言论。要努力提高自己,用一颗充满生机的心灵,把握现在,这才是进取。越是有意义的事情,困难会越多。愿力决定始终,智慧决定成败。不管遇到什么,都是风景。看淡纷争,看轻得失。学习时微而无声,利用时则巨则汹涌。“路漫漫其修远兮,吾将上下而求索” 每一分收获都是成长的记录,怎无凭,正是这种执着,成就了朝霞的灿烂。最后将一阙词送给致力于VBA学习的朋友,让大家感受一下学习过程的枯燥与执着: 浮云掠过,暗语无声, 唯有清风,惊了梦中啼莺。 望星,疏移北斗, 奈将往事雁同行。 阡陌人,昏灯明暗, 忍顾长亭。 多少VBA人, 暗夜中,悄声寻梦,盼却天明。 怎无凭! 分享我多年工作实际经验的成果,随喜这些有用的东西,给确实需要利用VBA的同路人。回向学习利用VBA的历历往事,不胜感慨,谨以这些文字以纪念, 分享成果,随喜正能量加微信NZ9668可获得详细资料信息
_______________________________
有启发 点在看,转给朋友 约作者 请留言,直接交流
更多关联阅读