PNG32 PNG32 PNG32 PNG32
PNG32
Forum Excel, VBA, VSTO, Exceltips, Excelhj�lp PNG32 drivs av Excelspecialisten    Logga in     English
PNG32
PNG32 PNG32
PNG32

Logga in

PNG32

Du är inte inloggad. Logga in eller registrera dig för att skriva inlägg eller svara på inlägg.

För frågor om forumet, kontakta oss på webmaster@excelforum.se

PNG32 PNG32
PNG32 PNG32
PNG32

Excelforum

PNG32

 
ForumForumDiskussionerDiskussionerVBAVBAFlytta mappstruktur med tillhörande filerFlytta mappstruktur med tillhörande filer
Föregående Föregående
 
Nästa Nästa
Nytt inlägg
 2023-03-20 21:22
 

 Hej, jag håller på att automatisera lite filflytt för en användare och tänkte att göra det så simpelt som möjligt. 

Sitter med denna koden

 Sub CopyFoldersAndFiles()

    Dim fso As Object

    Set fso = CreateObject("Scripting.FileSystemObject")

    Dim sourceFolder As Object

    Set sourceFolder = fso.GetFolder("C:\Users\Fredrik\Documents\test\")

    Dim destFolder As Object

    Set destFolder = fso.GetFolder("C:\Users\Fredrik\Documents\test2\")

    

    If Not fso.FolderExists(destFolder.Path) Then

        fso.CreateFolder destFolder.Path

    End If

     fso.CopyFolder sourceFolder.Path, destFolder.Path, True

 

End Sub

 

Problemet som uppstår är när jag försöker att skapa mappen om den inte skulle existera, dvs sista stycket med if Not fso...., får upp fel "Körfel 76: det går inte att htta sökvägen", har googlat en massa men är helt borta med vinden. Är det något med att jag inte har administrationsbehörigheter för att skapa en mapp där? Det funkar att manuellt skapa med hjälp av utforskaren. 

MVH

Fredrik

 

Nytt inlägg
 2023-03-20 21:43
 

Hittade en lösning 

Sub CopyFilesWithoutFSO()

    Dim sourcePath As String

    Dim destPath As String

    Dim fileName As String

    

    sourcePath = "C:\Users\Fredrik\Documents\test\"

    destPath = "C:\Users\Fredrik\Documents\test2\"

    

    If Dir(destPath, vbDirectory) = "" Then

        MkDir destPath

    End If

    

    fileName = Dir(sourcePath & "*.*")

    

    Do While fileName <> ""

        FileCopy sourcePath & fileName, destPath & fileName

        fileName = Dir()

    Loop

End Sub

Varför vill sig inte CreateObject fungera?

Nytt inlägg
 2023-03-23 07:43
 

 Hej hej

Skumt att du inte fick körfel redan på set destfolder, det går inte att köra getfolder på en mapp som inte finns. Gissar på att felet svaldes efterssom du kör late binding istället för att importera bilblioteket med verktyg -> referenser och bock för Microsoft scripting runtime.

I nedan kod lägger jag destfoldern som en sträng fram tills det är klargjort om det finns en sådan mapp eller inte, därefter kan Mappen skapas/tilldelas.

mvh

Christian

Sub dub()

    Dim fso As New Scripting.FileSystemObject

    Dim SourceF As Folder: Set SourceF = fso.GetFolder("C:\test\")

    Dim DestPath As String: DestPath = "C:\test\test2"

    Dim DestF As Folder    

    Set DestF = IIf(Not fso.FolderExists(DestPath), fso.CreateFolder(DestPath), fso.GetFolder(DestPath))

End Sub

 

 

Föregående Föregående
 
Nästa Nästa
ForumForumDiskussionerDiskussionerVBAVBAFlytta mappstruktur med tillhörande filerFlytta mappstruktur med tillhörande filer

PNG32 PNG32
Excelforum drivs av Excelspecialisten som bedriver utbildning i Excel och VBA, tillhandahåller support och hjälp med Excel, utvecklar program i Excel. Är ni i behov av en konsult inom Excel, VBA eller VSTO, eller söker en excelkurs, kontakta oss.
Copyright 2013 ExcelSpecialisten XLS AB   Användarvillkor  Personliga uppgifter