| Jak skasować katalog wraz z zawartością? |
|
Problem: W jaki sposób skasować katalog wraz ze wszystkimi plikami? Rozwiązanie: Możesz posłużyć się takim makrem, które bazuje na funkcjach VBA $Dir i $RmDir. W przypadku użycia drugiej funkcji przed skasowaniem katalogu należy usunąć wszystkie pliki. UWAGA! Makro nie kasuje podfolderów znajdujących się w folderze głównym, zatem jeżeli takie podfoldery istnieją, katalog główny nie zostanie skasowany. ![]() Sub SkasujFolder() Dim sSciezkaDoFolderu As String Dim sNazwaPliku As String 'Wyswietla komunikat w przypadku bledu On Error GoTo ErrorHandler 'Wybiera katalog do skasowania With Application.FileDialog(msoFileDialogFolderPicker) .Title = "Wybierz katalog, który chcesz skasować" .Show If .SelectedItems.Count = 0 Then Exit Sub sSciezkaDoFolderu = .SelectedItems(1) End With 'Pobiera sciezke do pierwszego pliku znajdujacego sie w katalogu sNazwaPliku = VBA.Dir(sSciezkaDoFolderu & "\" & "*") 'Petla po wszystkich plikach w katalogu - kasacja pliku Do Until sNazwaPliku = vbNullString VBA.Kill (sSciezkaDoFolderu & "\" & sNazwaPliku) sNazwaPliku = VBA.Dir Loop 'Kasuje pusty katalog VBA.RmDir (sSciezkaDoFolderu) ExitHandler: Exit Sub 'Obsluga bledow - komunikat ErrorHandler: MsgBox "Wystąpił błąd numer: " & Err.Number & vbCr & _ "Opis błędu: " & Err.Description, vbInformation + vbOKOnly, "Komunikat o błędzie!" Resume ExitHandler End Sub |
|
| Zmieniony ( Wtorek, 29. Czerwiec 2010 09:59 ) |
