Jak usunąć pliki za pomocą vba (z przykładami)
Możesz użyć instrukcji Kill w VBA, aby usunąć określony plik Excel w określonym folderze.
Oto powszechny sposób użycia tego stwierdzenia w praktyce:
SubDeleteFile ()
On Error Resume Next
Kill "C:\Users\Bob\Desktop\My_Data\soccer_data.xlsx"
On Error GoTo 0
End Sub
To konkretne makro usuwa plik Excel o nazwie Soccer_data.xlsx znajdujący się w następującym folderze:
C:\Użytkownicy\Bob\Desktop\Moje_Dane
Wiersz On Error Resume Next informuje VBA, że jeśli wystąpi błąd i plik nie zostanie odnaleziony, nie powinien być wyświetlany żaden komunikat o błędzie.
Następnie używamy On Error GoTo 0 , aby zresetować komunikaty o błędach do ustawień domyślnych.
Jeśli chcesz wyświetlić komunikat o błędzie w przypadku nie odnalezienia pliku, po prostu usuń te dwie linie z kodu.
Poniższy przykład pokazuje, jak zastosować tę składnię w praktyce.
Przykład: Usuń plik za pomocą VBA
Załóżmy, że mamy następujący folder zawierający trzy pliki Excel:
Załóżmy, że chcemy użyć języka VBA do usunięcia pliku o nazwie football_data.xlsx .
W tym celu możemy utworzyć następujące makro:
SubDeleteFile ()
On Error Resume Next
Kill "C:\Users\Bob\Desktop\My_Data\soccer_data.xlsx"
On Error GoTo 0
End Sub
Gdy uruchomimy to makro i ponownie otworzymy folder, zobaczymy, że plik o nazwie Soccer_data.xlsx został usunięty:
Wszystkie pozostałe pliki pozostały w folderze nienaruszone.
Jeśli chcesz, aby w przypadku nieistnienia pliku wyświetlił się komunikat o błędzie, możesz użyć następującego makra:
SubDeleteFile ()
Kill "C:\Users\Bob\Desktop\My_Data\soccer_data.xlsx"
End Sub
Po uruchomieniu tego makra pojawia się następujący komunikat o błędzie:
Otrzymujemy ten komunikat o błędzie, ponieważ plik Soccer_data.xlsx został już usunięty i nie istnieje już w folderze.
Uwaga : Należy pamiętać, że instrukcja Kill trwale usuwa plik, a nie po prostu wysyła go do Kosza.
Dodatkowe zasoby
Poniższe samouczki wyjaśniają, jak wykonywać inne typowe zadania w VBA:
VBA: Jak policzyć liczbę arkuszy w skoroszycie
VBA: Jak wyodrębnić dane z innego skoroszytu
VBA: Jak usunąć arkusz, jeśli nazwa zawiera określony tekst