VBA-bestand / werkmap kopiëren

Met VBA kunt u een bestand kopiëren met behulp van de BestandssysteemObject. In deze zelfstudie leert u hoe u een specifiek bestand kopieert en hernoemt.

Als u wilt leren hoe u een bestand hernoemt, kunt u op deze link klikken: VBA Bestand hernoemen

Kopieer een bestand / werkmap

We zullen laten zien hoe u het bestaande bestand kopieert Voorbeeldbestand 1.xlsx in de map VBA-map. In dit voorbeeld zullen we het bestand niet hernoemen, maar kopiëren en overschrijven. De map heeft momenteel alleen dit ene bestand:

Afbeelding 1. Bestand in map C:\VBA-map

Hier is de code:

12345 Dim oFSO als objectStel oFSO = CreateObject ("Scripting.FileSystemObject") inRoep oFSO.CopyFile("C:\VBA Folder\Voorbeeldbestand 1.xlsx", "C:\VBA Folder\", True) aan

U moet eerst het object van de klasse maken Scripting.FileSystemObject:

1 Stel oFSO = CreateObject ("Scripting.FileSystemObject") in

Dan kunnen we de methode gebruiken: Kopieer bestand:

1 Roep oFSO.CopyFile("C:\VBA Folder\Voorbeeldbestand 1.xlsx", "C:\VBA Folder\", True) aan

De eerste parameter van de methode is het bronpad en de tweede is het bestemmingspad. De derde parameter is overschrijven. Omdat we dezelfde bron- en bestemmingspaden hebben, moeten we instellen overschrijven naar waar of onwaar. In dit voorbeeld plaatsen we True, wat betekent dat het originele bestand wordt overschreven.

Laten we nu eens kijken wat er gebeurt als we dezelfde bestemmingen hebben, maar Overschrijven op False zetten. U hoeft alleen deze regel van de code te wijzigen:

1 Roep oFSO.CopyFile("C:\VBA Folder\Voorbeeldbestand 1.xlsx", "C:\VBA Folder\", True) aan

Als gevolg hiervan krijgt u een foutmelding zoals u kunt zien in Afbeelding 2:

Afbeelding 2. Fout bij het kopiëren van het bestand

Een bestand kopiëren en hernoemen

Een andere mogelijke optie bij het kopiëren van een bestand is om het te hernoemen. Het is vergelijkbaar met het kopiëren van een bestand, maar nu hoeft u alleen het bestemmingspad met een andere naam in te stellen. Hier is de code:

12345 Dim oFSO als objectStel oFSO = CreateObject ("Scripting.FileSystemObject") inRoep oFSO.CopyFile("C:\VBA Folder\Voorbeeldbestand 1.xlsx", "C:\VBA Map\Voorbeeldbestand Copy.xlsx") aan

Zoals je kunt zien aan de laatste regel van de code, willen we het bestand kopiëren Voorbeeldbestand 1.xlsx in dezelfde map en noem maar op Voorbeeldbestand Copy.xlsx:

1 Roep oFSO.CopyFile("C:\VBA Folder\Voorbeeldbestand 1.xlsx", "C:\VBA Map\Voorbeeldbestand Copy.xlsx") aan

Nu hebben we twee bestanden in de VBA-map. Het resultaat van de code staat in Afbeelding 3:

Afbeelding 3. Kopieer en hernoem het bestand

U zal helpen de ontwikkeling van de site, het delen van de pagina met je vrienden

wave wave wave wave wave