Hallo Reinhard,
du solltest deine Variablenbenennung überdenken: ich habe das Gefühl, dass selbst du sie verwechselst.
Ich hoffe, ich konnte erraten, was du vorhast:
Option Explicit
Const strFolderPath As String = "c:\tmp\VBA_Test\"
Const strFolderQ As String = "Test_01\"
Const strFolderZ As String = "c:\tmp\VBA_Test\"
Const strFolderZNew As String = "Test_02\"
Public Sub Main()
Dim strFrom As String, strTo As String
Dim objFSO As Object
'FSO erwartet Pfadangaben ohne abschließenden Backslash:
strFrom = strFolderPath & strFolderQ
If Right(strFrom, 1) = "\" Then strFrom = Left(strFrom, Len(strFrom) - 1)
strTo = strFolderZ & strFolderZNew
If Right(strTo, 1) = "\" Then strTo = Left(strTo, Len(strTo) - 1)
Set objFSO = CreateObject("Scripting.FileSystemObject")
If objFSO.FolderExists(strTo) Then
MsgBox "Projektordner existiert bereits!"
Set objFSO = Nothing
Exit Sub
Else
objFSO.CreateFolder strTo
objFSO.CopyFolder strFrom, strTo
If objFSO.FileExists(strTo & "\" & "Test_01.pdf") Then
Name strTo & "\" & "Test_01.pdf" As strTo & "\" & "Test_02.pdf"
End If
End If
Set objFSO = Nothing
End Sub
Ich würde keine Fehlerbehandlung einbauen, so lange du noch fehlerhaften Code hast. Dann fällt das debuggen viel schwerer. Fehlerbehandlung also (wenn überhaupt) erst dazu bauen, wenn alles schon läuft und der Code ausgiebig getestet ist.
Grüße, Ulrich
|