大众计算机学习网欢迎诸位!收藏本站注 册登 陆
常用教程:基础知识网络知识操作系统WPS网页制作数据库算法网页成功之路网络安全最新技术古典mid流行midmid背景下载中心
您现在的位置:首页 > 教程 > 文章页

vba CopyFile示例及代码

Admin | 2017-7-20 8:35:24 | ReadNums | 275 | 标签 Excel教程 | 打印本页
     

  命令名称:CopyFile

  功能描述:把一个或多个文件从一个地方复制到另一个地方。

  语法

  object.CopyFile source, destination[, overwrite]

  CopyFile 方法语法有如下几部分:

  部分       描述

  object     必需的。object始终是一个 FileSystemObject的名字。
  source     必需的。指明一个或多个要被复制文件的字符串文件说明,它可以包括通配符。
  destination     必需的。指明 source 中的一个或多个文件要被复制到的接受端的字符串,不允许有通配符。

  overwrite     选项的。Boolean 值,它表示存在的文件是否被覆盖。如果是 True,文件将被覆盖;如果是False,它们不被覆盖。缺省值是 True。注意如果 destination具有只读属性设置,不论 overwrite 值如何,CopyFile都将失败。

  说明

  通配符只能用在 source 参数的最后一个路径部件。例如,你可以在下面请况使用通配符:

  FileSystemObject.CopyFile "c:\mydocuments\letters\*.doc", "c:\tempfolder\"

  但下面情况不能使用:

  FileSystemObject.CopyFile "c:\mydocuments\*\R1???97.xls", "c:\tempfolder"

  如果 source 包含通配符或 destination以路径分隔符(\)为结尾,则认为 destination 是一个已存在文件夹,在其中复制相匹配的文件。否则认为 destination 是一个要创建文件的名字。不论是那种情况,当复制一个文件时,可能发生三种事件。

  如果 destination 不存在,source得到复制。这是通常的情况。

  如果 destination 是一个已存在的文件,则当 overwrite 值为 False 时发生一个错误,否则,source的复制文件将试图覆盖已存在文件。

  如果 destination 是一个目录,发生一个错误。

  如果使用通配符的 source 不能和任何文件匹配,同样产生一个错误。CopyFile方法停止在它遇到的第一个错误上。不要试图回卷或撤消错误发生前所做的任何改变。

  示例代码:

  ①简单代码

  FileCopy "c:\123.xls", "d:\456.xls"

  代码解释:把c:\123.xls复制粘贴到D盘,并且改名为456.xls

  ②复杂代码

  t = Timer
    Dim 当前路径 As String, 目标路径 As String
    Dim fs
    On Error Resume Next
    当前路径 = ThisWorkbook.Path & "\"
    目标路径 = "C:\汇总数据\"   '目标目录
    fs = Dir(当前路径 & "*")    '如果只复制xls则把 "*" 改成 "*.xls")
    Do While fs <> ""
        FileCopy 当前路径 & fs, 目标路径 & fs
        fs = Dir
    Loop
    ActiveWorkbook.SaveCopyAs 目标路径 & ThisWorkbook.Name
    '*******如果想要对一个已打开的文件使用 FileCopy 语句,则会产生错误******
    MsgBox Format(Timer - t, "0.0000")


问题未解决:在线咨询我要在线咨询问题

网友评论

(访客)
内容实用原创,讲得很好。
20xx年x月x日
(站长)
有问题请在线咨询。
20xx年x月x日