标签:VBA
本文使用FileCopy方法来复制粘贴文件。
示例1:直接复制文件
下面的代码将C盘“test”文件夹下的文件books.xlsx复制到D盘“完美Excel”文件夹中。
代码语言:javascript复制Sub CopyFile()
FileCopy "C:testbooks.xlsx", "D:完美Excelbooks.xlsx"
End Sub
注:复制后的文件其名称没有变化。
示例2:使用变量复制文件
在示例1中,直接在FileCopy语句中包括了文件名,下面的代码我们将其放置在变量中。
代码语言:javascript复制Sub CopyFileUseVariables()
Dim strFromFile As String
Dim strToFile As String
strFromFile = "C:testbooks.xlsx"
strToFile = "D:完美Excelbooks-副本.xlsx"
FileCopy strFromFile, strToFile
End Sub
注:复制文件到新位置并重命名该文件。
示例3:基于单元格值复制文件
复制单元格中内容包含的文件路径指定的文件名,如下图1所示。
图1
代码如下:
代码语言:javascript复制Sub CopyFileCellsValue()
FileCopy ActiveSheet.Range("C2"), ActiveSheet.Range("C4")
End Sub
示例4:复制前检查文件是否存在
FileCopy将覆盖文件而不会显示任何错误,因此在复制前检查文件是否已经存在很有必要。
下面的代码检查复制文件的目标位置中文件是否已存在,如果存在则弹出消息框来供选择。
代码语言:javascript复制Sub CheckTargetFileCopy()
Dim strFromFile As String
Dim strToFile As String
Dim msgBoxAnswer As Long
strFromFile = "C:testbooks.xlsx"
strToFile = "D:完美Excelbooks-副本.xlsx"
If Dir(strToFile) <> "" Then
msgBoxAnswer = MsgBox(Prompt:="目标位置文件已经存在." & vbNewLine & _
"你想覆盖掉吗?", Buttons:=vbYesNo, Title:="复制文件")
If msgBoxAnswer = vbNo Then
Exit Sub
End If
End If
FileCopy strFromFile, strToFile
End Sub
示例5:复制文件时避免错误
如果发生错误则提供错误消息,代码如下:
代码语言:javascript复制Sub CheckTargetFileCopyPlus()
Dim strFromFile As String
Dim strToFile As String
Dim msgBoxAnswer As Long
strFromFile = "C:testbooks.xlsx"
strToFile = "D:完美Excelbooks-副本.xlsx"
On Error Resume Next
If Dir(strToFile) <> "" Then
msgBoxAnswer = MsgBox(Prompt:="目标位置文件已经存在." & vbNewLine & _
"你想覆盖掉吗?", Buttons:=vbYesNo, Title:="复制文件")
If msgBoxAnswer = vbNo Then
Exit Sub
End If
End If
FileCopy strFromFile, strToFile
If Err.Number <> 0 Then
MsgBox Prompt:="不能复制文件", Buttons:=vbOKCancel, Title:="复制文件错误"
End If
On Error GoTo 0
End Sub
注:FileCopy不能复制完整文件夹,仅复制文件。
欢迎在下面留言,完善本文内容,让更多的人学到更完美的知识。