Masowa zmiana nazwy zakładek

Na dzisiejszej lekcji zajmę się przypadkiem, w którym chcę aby we wszystkich plikach w wybranym folderze każdy arkusz miał tę samą nazwę z przypisanym kolejnym numerem. Przygotowałem folder Nowy na dysku C i taką ścieżkę zamieszczę w makrze. Teraz stworzę kod który bez względu na to ile napotka plików i zakładek we wskazanym folderze, zmieni nazwę wszystkich zakładek na „Zadanie 1, Zadanie 2, Zadanie 3 itd. w zależności od tego który to arkusz.

Użyje do tego pętli Do Loop dla plików i For Each dla arkuszy. Zaczynam od stworzenia nowej procedury i na początku definiuję zmienne lokalne. Zmienna ark as Worksheet, sciezka as String (do nadania adresu wybranemu folderowi), i zmienna plik as String (nazwa pliku).

Zaczynam od tego że przypisuję wartość zmiennej sciezka (należy ją zmodyfikować pod własny przypadek). Koniecznie trzeba pamiętać o zamknięciu ścieżki backslashem. Teraz zmienna Plik dzięki poleceniu Dir() ze wskazaniem ścieżki do folderu przyjmie wartość, która jest nazwą pierwszego pliku w folderze.

Otwieram pętlę Do Loop, która będzie przechodziła po wszystkich plikach. Zaczynam od otwarcia pierwszego pliku w folderze (połączenie dwóch zmiennych daje pełny adres pliku) i aktywuję otwarty plik.

Teraz uruchamiam pętlę For Each dla arkuszy znajdujących się w aktywnym pliku. Pętla zmieni nazwę wszystkich arkuszy na Zadanie i nada im kolejne numery zgodne z kolejnością ich występowania.

Zamykam teraz aktywny plik i zachowuję automatycznie wprowadzone zmiany. Po zmianie nazw zakładek w pierwszym pliku zmienna plik przyjmuje nową wartość. Użycie polecenia Dir bez wskazania ścieżki do folderu spowoduje, że zostanie znaleziony kolejny plik i zmienna przyjmie jego nazwę.

Zamykam pętlę Do Loop przez polecenie Until plik=””, czyli jeżeli zmienna plik przyjmie za wartość pusty ciąg znaków, wtedy pętla musi się zakończyć.

Jeżeli wolicie instrukcję w postaci filmu to zapraszam na YouTube:

Spodobał Ci się artykuł ? Udostępnij go znajomym.

Share on facebook
Share on linkedin
Share on twitter

2 thoughts on “Masowa zmiana nazwy zakładek”

  1. Ja mam w jednym folderze różne w nazewnictwie podfoldery z różnymi plikami Excela o różnych nazwach. Da się tą metodę zastosować w takim przypadku?

  2. Dariusz Skórniewski

    Mirku, żeby dostawać się do podfoloderów trzeba najpierw te podfoldery wykrywać, więc tutaj musiałbyś już użyć funkcji Dir z parametrem vbDirectory Dir(sciezka, vbDirectory) . Nie robiłem jeszcze takiego przykładu, ale dałoby się to zapętlić.

Leave a Comment

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *