ExcelTip.Net留存知识帖 ---【注:附件之前被网盘供应商清空后,现已修复-现已修复-现已修复为本地下载!】
现在位置:首页 > E文精选 > Excel VBA > 复制当前路径的所有文件到指定文件夹【三种方法】

复制当前路径的所有文件到指定文件夹【三种方法】

作者:绿色风 分类: 时间:2022-08-17 浏览:283
楼主
芐雨
如何复制当前路径的所有文件到指定文件夹

方法一:FileCopy  

可在VBA中直接引用,单个文件的copy。所以本例中用循环+复制完成。
语法:
FileCopy  源文件名,目标文件名         【两个参数都是必选的,且都包含路径。】

注:如果想要对一个已打开的文件使用 FileCopy 语句,则会产生错误。所以用了 ActiveWorkbook.SaveCopyAs +完整路径

代码:
  1. Sub 复制当前路径的所有文件到指定文件夹_FileCopy()
  2.     t = Timer
  3.     Dim 当前路径 As String, 目标路径 As String
  4.     Dim fs
  5.     On Error Resume Next
  6.     当前路径 = ThisWorkbook.Path & "\"
  7.     目标路径 = "C:\汇总数据\"   '目标目录
  8.     fs = Dir(当前路径 & "*")    '如果只复制xls则把 "*" 改成 "*.xls")
  9.     Do While fs <> ""
  10.         FileCopy 当前路径 & fs, 目标路径 & fs
  11.         fs = Dir
  12.     Loop
  13.     ActiveWorkbook.SaveCopyAs 目标路径 & ThisWorkbook.Name
  14.     '*******如果想要对一个已打开的文件使用 FileCopy 语句,则会产生错误******
  15.     MsgBox Format(Timer - t, "0.0000")
  16. End Sub


方法二:CopyFile
需调用FileSystemObject,多个文件可使用通配符。
语法:

.CopyFile , [, ]
CopyFile 方法语法有如下几部分:
部分描述
object必需的。object始终是一个 FileSystemObject 的名字。
source必需的。指明一个或多个要被复制文件的字符串文件说明,它可以包括通配符
destination必需的。指明 source 中的一个或多个文件要被复制到的接受端的字符串,不允许有通配符。
overwrite选项的。Boolean 值,它表示存在的文件是否被覆盖。如果是 True,文件将被覆盖;如果是 False,它们不被覆盖。缺省值是 True。注意如果 destination 具有只读属性设置,不论 overwrite 值如何,CopyFile 都将失败。

免责声明

有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素, 经与ExcelTip.Net站长Apolloh商议并征得其同意, 现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示, 供有需要的人士查询使用,也慰缅曾经的论坛时代。 所示各个帖子的原作者如对版权有异议, 可与本人沟通提出,或于本站点留言,我们会尽快处理。 在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一

评论列表
sitemap