html5中如何复制文件,VBA中复制文件的步骤

使用FileCopy语句,可以在文件夹之间复制文件:

FileCopy 来源, 目的地

该语句的第一个参数是文件来源,明确你要复制的文件名称,该名称可以包含驱动名称。第二个参数是复制的目的地,可以包括驱动和文件夹的地址。两个参数都是必须的。假设你要将用户确定的一个文件复制到一个叫做“C:\Abort”的文件夹,下面的过程示范如何完成它:

Sub CopyToAbort()

Dim folder As String

Dim source As String

Dim dest As String

Dim msg1 As String

Dim msg2 As String

Dim p As Integer

Dim s As Integer

Dim i As Long

On Error GoTo ErrorHandler

folder = "C:\Abort"

msg1 = "The selected file is already in this folder."

msg2 = "was copied to"

p = 1

i = 1

' get the name of the file from the user 从用户处获取文件名称

source = Application.GetOpenFilename

' don’t do anything if cancelled 如果取消则不进行任何操作

If source = "False" Then Exit Sub

' get the total number of backslash characters "\" in the source 获取文件来源字符

串中的反斜杠数

' variable’s contents

Do Until p = 0

p = InStr(i, source, "\", 1)

If p = 0 Then Exit Do

s = p

i = p + 1

Loop

' create the destination file name 创建目的文件名称

dest = folder & Mid(source, s, Len(source))

' create a new folder with this name 创建同名文件夹

MkDir folder

' check if the specified file already exists in the 检查该文件是否在目的地已经存

' destination folder

If Dir(dest) <> "" Then

MsgBox msg1

Else

' copy the selected file to the C:\Abort folder 复制所选文件到文件夹“C:\Abort”

FileCopy source, dest

MsgBox source & " " & msg2 & " " & dest

End If

Exit Sub

ErrorHandler:

If Err = "75" Then

Resume Next

End If

If Err = "70" Then

MsgBox "You can’t copy an open file."

Exit Sub

End If

End Sub

ce83835b1215d2e0774aa21efeab4512.png

过程CopyToAbort使用了Excel应用程序的方法GetOpenFilename从用户那里获取文件名称。该方法导致弹出内置的打开对话框。使用该对话框,你可以在任何驱动的任何文件夹里选择任何文件。如果用户取消了,VB就返回值“False”并且程序结束。如果用户选取了某个文件并且点击了打开,那么该选中的文件就会赋值到变量source。因为复制的目的,你只需要文件名称(而不需路径名),所以Do…Until循环用来找到最后一个反斜杠(“\”)在变量source里的位置。

接下来,VB给FileCopy语句的第二个参数准备了一个字母字符串,并且将其赋值到变量dest。该变量储存的字符串是目标文件夹(C:\Abort)和用户指定的文件名前面加反斜杠连接起来的。函数MkDir创建了一个叫C:\Abort的文件夹,如果它不存在于C盘上的话。如果这样的文件夹已经存在的话,那么VB就需要去处理错误75了。这个错误会被在程序后面的错误处理代码捕获。注意,错误处理器是一代码片断,它用ErrorHandler带冒号标志。

当VB遇到Resume Next语句时,就会继续执行过程里面导致错误的代码行下面的代码。这意味着语句MkDirfolder不会被执行。在这之后,程序将检查被选择的文件是否已经存在于目的文件夹。如果文件在那,那么用户将收到储存于变量msg1里面的信息;如果文件不存在于目的文件夹并且该文件当前没有打开的话,VB就会将文件复制到指定的文件夹,并且用相应的信息通知用户。如果该文件被打开了,VB将遇到运行时间错误70,并且因此而运行ErrorHandler里面的相应指令。

1. 在一名为FileCopyStatement的信魔窟里输入过程CopyToAbort

2. 运行该程序几次,从不同的文件夹里选择文件

3. 试着复制该程序之前复制过的文件到文件夹C:\Abort

4. 打开某个文件,并且在其开着的情况下试图用过程CopyToAbort来复制它

5. 运行本章前面准备的过程MyFiles,在立即窗口里列出文件夹C:\Abort里面的内容

注意,不要删除文件夹C:\Abort和你复制的文件,你将在下一节里面使用一个叫RemoveMe的VBA过程来同时删除文件和文件夹。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值