使用VBA复制和重命名文件夹

时间:2015-12-08 15:27:57

标签: excel excel-vba vba

我有一个包含大量链接工作簿的文件夹。我想在C:\驱动器中存储它的主副本。当有人需要使用它时,他们会点击下面的宏来复制文件夹,询问新名称是什么,并将其放在桌面上以供使用。下面的代码循环,但不会将文件夹放在桌面上。它似乎消失了,并没有复制原来的

希望有人能帮忙吗?

Sub Copy_Folder()
Dim FSO As Object
Dim FromPath As String
Dim ToPath As String
Dim strName As String


FromPath = "C:\v4 Master Operations Folder"  
ToPath = "C:\Users\Owner\Desktop"
Application.CutCopyMode = False


Reenter:
strName = InputBox(Prompt:="Enter the name of your operation", _
Title:="Operation.", Default:=" ")

If strName = vbNullString Then
MsgBox "Incorrect Entry."
GoTo Reenter

End If

If Right(FromPath, 1) = "\" Then
    FromPath = Left(FromPath, Len(FromPath) - 1)
End If

If Right(ToPath, 1) = "\" Then
    ToPath = Left(ToPath & strName, Len(ToPath) - 1)
End If

Set FSO = CreateObject("scripting.filesystemobject")

If FSO.FolderExists(FromPath) = False Then
    MsgBox FromPath & " doesn't exist"
    Exit Sub
End If

FSO.CopyFolder Source:=FromPath, Destination:=ToPath & strName
MsgBox "You can find the files and subfolders from " & FromPath & " in " & ToPath & strName

End Sub

1 个答案:

答案 0 :(得分:3)

看起来问题出现在这一行:

FSO.CopyFolder Source:=FromPath, Destination:=ToPath & strName

您将Destination变量设置为ToPath & strName,因此如果用户输入“我的名字”,那么它将是“C:\ Users \ Owner \ DesktopMy Name”。你需要在那里放一个斜杠:Destination:=ToPath & "\" & strName