Skopiuj plik / skoroszyt VBA

VBA umożliwia kopiowanie pliku za pomocą Obiekt systemu plików. W tym samouczku dowiesz się, jak skopiować i zmienić nazwę określonego pliku.

Jeśli chcesz dowiedzieć się, jak zmienić nazwę pliku, możesz kliknąć ten link: VBA Zmień nazwę pliku

Skopiuj plik / skoroszyt

Pokażemy, jak skopiować istniejący plik Przykładowy plik 1.xlsx w folderze Folder VBA. W tym przykładzie nie zmienimy nazwy pliku, po prostu skopiuj go i nadpisz. Folder zawiera obecnie tylko ten jeden plik:

Obraz 1. Plik w folderze C:\Folder VBA

Oto kod:

12345 Dim FSO jako obiektSet ofFSO = CreateObject("Scripting.FileSystemObject")Call oFSO.CopyFile("C:\VBA Folder\Przykładowy plik 1.xlsx", "C:\VBA Folder\", True)

Najpierw musisz stworzyć obiekt klasy Scripting.FileSystemObject:

1 Set ofFSO = CreateObject("Scripting.FileSystemObject")

Wtedy możemy skorzystać z metody Skopiuj plik:

1 Call oFSO.CopyFile("C:\VBA Folder\Przykładowy plik 1.xlsx", "C:\VBA Folder\", True)

Pierwszym parametrem metody jest ścieżka źródłowa, a drugim ścieżka docelowa. Trzeci parametr to Przepisać. Ponieważ mamy te same ścieżki źródłowe i docelowe, musimy ustawić Przepisać Prawda czy Fałsz. W tym przykładzie wstawiamy True, co oznacza, że ​​oryginalny plik jest nadpisywany.

Spójrzmy teraz, co się stanie, jeśli mamy te same miejsca docelowe, ale ustawimy Overwrite na False. Wystarczy zmienić ten wiersz kodu:

1 Call oFSO.CopyFile("C:\VBA Folder\Przykładowy plik 1.xlsx", "C:\VBA Folder\", True)

W rezultacie otrzymasz błąd, jak widać na obrazku 2:

Obraz 2. Błąd podczas kopiowania pliku

Skopiuj i zmień nazwę pliku

Inną możliwą opcją podczas kopiowania pliku jest zmiana jego nazwy. Jest to podobne do kopiowania pliku, ale teraz wystarczy ustawić ścieżkę docelową o innej nazwie. Oto kod:

12345 Dim FSO jako obiektSet ofFSO = CreateObject("Scripting.FileSystemObject")Call oFSO.CopyFile("C:\VBA Folder\Sample file 1.xlsx", "C:\VBA Folder\Sample file Copy.xlsx")

Jak widać z ostatniej linii kodu, chcemy skopiować plik Przykładowy plik 1.xlsx w tym samym folderze i nazwij go Przykładowy plik Copy.xlsx:

1 Call oFSO.CopyFile("C:\VBA Folder\Sample file 1.xlsx", "C:\VBA Folder\Sample file Copy.xlsx")

Teraz mamy dwa pliki w folderze VBA. Wynik kodu znajduje się na obrazku 3:

Obraz 3. Skopiuj i zmień nazwę pliku

Będziesz pomóc w rozwoju serwisu, dzieląc stronę ze swoimi znajomymi

wave wave wave wave wave