2015-12-08 49 views
0

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

希望有人可以帮忙??

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 

回答

3

它看起来像这个问题是在这条线:

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

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