打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Excel|复制当前路径的所有文件到指定文件夹【三种方法】|如何,FileCopy,CopyFile,XCopy,复制文件,VBA
方法一: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,多个文件可使用通配符。
语法:
object.CopyFile source, destination[, overwrite]
CopyFile 方法语法有如下几部分:
部分描述
object必需的。object始终是一个 FileSystemObject 的名字。
source必需的。指明一个或多个要被复制文件的字符串文件说明,它可以包括通配符
destination必需的。指明 source 中的一个或多个文件要被复制到的接受端的字符串,不允许有通配符。
overwrite选项的。Boolean 值,它表示存在的文件是否被覆盖。如果是 True,文件将被覆盖;如果是 False,它们不被覆盖。缺省值是 True。注意如果 destination 具有只读属性设置,不论 overwrite 值如何,CopyFile 都将失败。


代码:
  1. Sub 复制当前路径的所有文件到指定文件夹_CopyFile()
  2.     t = Timer
  3.     Dim Fso As Object
  4.     Dim 当前路径 As String, 目标路径 As String
  5.     当前路径 = ThisWorkbook.Path & "\*.*"   '如果只复制xls则把 "*.*" 改成 "*.xls"
  6.     目标路径 = "C:\汇总数据\"              '目标路径
  7.     Set Fso = CreateObject("Scripting.FileSystemObject")
  8.     Fso.CopyFile 当前路径, 目标路径
  9.     Set Fso = Nothing
  10.     MsgBox Format(Timer - t, "0.0000")
  11. End Sub
复制代码

方法三:XCopy
批处理,shell调用
文中用了 shell  Environ("ComSpec")
其中:Environ("ComSpec") 可以获得下列文字"c:\windows\system32\cmd.exe"
语法:
XCOPY source [destination]
source指定要复制的文件。
destination指定新文件的位置和/或名称。
指定要复制文件也可带通配符。还包含很多参数。XCOPY是COPY的扩展,可以把指定的目录连文件和目录结构一并拷贝,但不能拷贝系统文件。
代码:
  1. Sub 复制当前路径的所有文件到指定文件夹_XCOPY()
  2.     t = Timer
  3.     Dim 当前路径 As String, 目标路径 As String
  4.     当前路径 = ThisWorkbook.Path & "\*.*"  '如果只复制xls则把 "*.*" 改成 "*.xls"
  5.     目标路径 = "C:\汇总数据\"              '目标路径
  6.     Shell Environ("comspec") & " /c xcopy " & 当前路径 & " " & 目标路径, vbHide
  7.     MsgBox Format(Timer - t, "0.0000")
  8. End Sub
复制代码
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
如何用VBA 将文件复制到另一个文件夹下并改名
vb中 FileCopy 和 CopyFile 函数拷贝文件
【烟花原创】VBA零基础之第229篇 FSO对象(28)
批处理bat文件实现复制、删除、创建文件夹、执行程序、打开文件
【InstallShield】(X)CopyFile
windows下定期自动备份本地文件(文件夹)
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服