Hoe kopieer ik een excel-bestand met vba?
U kunt VBA-code gebruiken om een bestand (werkmap) van de ene map naar de andere te kopiëren, maar u kunt ook een bestand onder een andere naam naar dezelfde map kopiëren.
In deze zelfstudie zien we hoe u code in beide richtingen schrijft. Hier moet u het FileSystemObject gebruiken dat toegang biedt tot bestanden en mappen in Windows.
Kopieer een Excel-bestand naar een aparte map
Sub myMacro() Dim myFile As Object Set myFile = CreateObject("Scripting.FileSystemObject") Call myFile.CopyFile("C:\Users\admin\Desktop\folder\test-file.xlsx", "C:\Users\admin\Desktop\", True) End Sub
Om de bovenstaande code te schrijven:
- Eerst moet u een variabele declareren.
- Vervolgens moet u het FileSystemObject opgeven voor de variabele die u zojuist hebt gedefinieerd.
- Vervolgens moet u de bronlocatie instellen in de “CopyFile” -methode.
- Stel aan het einde de maplocatie in waar u deze wilt plakken.
Wanneer u deze macro uitvoert , wordt het Excel-werkmaptekstbestand uit de map gekopieerd en op de locatie geplakt die we in de code hebben opgegeven.
Kopieer een bestand en hernoem het
Wanneer u een bestand op dezelfde locatie probeert te kopiëren en plakken, is de kans groot dat VBA u een foutmelding geeft. In deze situatie is de beste manier om het bestand een andere naam te geven wanneer u het kopieert.
Call myFile.CopyFile("C:\Users\admin\Desktop\folder\test-file.xlsx", "C:\Users\admin\Desktop\", True)
Hierboven ziet u de lijncode die ik in de vorige methode heb gebruikt. Nu hoeft u alleen in deze rij een wijziging aan te brengen. Voor de doellocatie moet u het bestand toevoegen dat u voor het nieuwe bestand wilt gebruiken.
Call myFile.CopyFile("C:\Users\admin\Desktop\folder\test-file.xlsx", "C:\Users\admin\Desktop\folder\test-file1.xlsx ", True)
Wanneer u deze code uitvoert, wordt het bestand (text-file.xlsx) uit de map gekopieerd en naar dezelfde map met een andere naam (test-file1.xlsx) gekopieerd.
Dim myFile As Object Set myFile = _ CreateObject("Scripting.FileSystemObject") Call myFile.CopyFile("C:\Users\admin\Desktop\folder\test-file.xlsx", _ "C:\Users\admin\Desktop\folder\test-file1.xlsx", True) End Sub