У меня есть небольшой макрос, который должен копировать папку и все ее содержимое из одного пути к файлу в другой.Проблема в том, что он копирует не ту папку.Вместо этого он копирует первую подпапку (но не ее содержимое) из этой папки, а затем выдает ошибку «Путь не найден».Иногда он копирует основную папку, а затем просто ту же самую первую подпапку без ее содержимого, а затем снова выдает ошибку «Путь не найден».
Dim strFilePath As String, techfolder As String
strFilePath = "G:\Data\FolderName\PROJECTS\2019\AnotherFolderName\Test_Area\" & year2 & " - Testing\6. Verification\" & quarter & "\3 - Verification Emails Received\YetAnotherFolderName"
techfolder = "G:\Data\CompanyName\FolderName\AnotherFolderName\Name" & year2 & " " & quarter2 & "\Completed\"
Dim FSO As Object
If Right(techfolder, 1) = "\" Then
techfolder = Left(techfolder, Len(techfolder) - 1)
End If
If Right(strFilePath, 1) = "\" Then
strFilePath = Left(strFilePath, Len(strFilePath) - 1)
End If
Set FSO = CreateObject("scripting.filesystemobject")
If FSO.FolderExists(techfolder) = False Then
MsgBox techfolder & " doesn't exist"
Exit Sub
End If
Debug.Print (strFilePath)
Debug.Print (techfolder)
FSO.CopyFolder Source:=techfolder, Destination:=strFilePath
MsgBox "You can find the files and subfolders from " & techfolder & " in " & strFilePath
Я пробовал несколько различных способовCopyFolder с логикой if и т. Д. Из некоторых поисков в Интернете, но все в этой общей форме.Никто из них не копирует папку и все ее подпапки / содержимое правильно.
Я проверил мои пути к файлам с помощью отладки, они в порядке, и я могу скопировать / вставить их в проводник и перемещаться без проблем.Кроме того, копирование подпапок подразумевает, что оно кажется правильным.
При ручном копировании папки или ее подпапок проблем нет.
ETA: существует около 31 подпапок, каждая из которых содержит один excel и одинpdf.
Переменные значения:
Quarter - это Q3 2018 Year2 - это 2018 Quarter2 - это Q3
Year2, а Quarter2 - это подстроки Quarter, переменной, которая заполняется черезполе ввода.
year2 = Mid(quarter, 4, 4)
quarter2 = Mid(quarter, 1, 2)