Dzwebs.Net

撰写电脑技术杂文十余年

vba CopyFile示例及代码

Admin | 2017-7-20 8:35:24 | 被阅次数 | 18611

温馨提示!

如果未能解决您的问题,请点击搜索;登陆可复制文章,点击登陆

  命令名称: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")


该杂文来自: Excel杂文

上一篇:POISSON泊松分布

下一篇:Excel2007及以上版本扫描当前目录及子目录的所有

网站备案号:

网站备案号:滇ICP备11001339号-7

版权属性:

Copyright 2007-2021-forever Inc. all Rights Reserved.

联系方式:

Email:dzwebs@126.com QQ:83539231 访问统计