Sheets.Add - metoda dodająca nowe arkusze - VBA Excel

Sheets.Add – metoda dodająca nowe arkusze

Sheets.Add, czy WorkSheets.Add?

Nowy arkusz można dodawać przyciskając + na końcu listy arkuszy w skoroszycie. Jednak tworząc makra często musimy zaimplementować polecenie, które doda nowy arkusz, aby móc zamieścić w nim nowe dane. Typowym przykładem jest stworzenie tabeli przestawnej, którą Excel domyślnie wstawia do nowego arkusza.

Aby dodać nowy obiekt (w tym wypadku arkusz) należy odwołać się do jego kolekcji. Mamy dostępną kolekcję arkuszy roboczych (Worksheets), kolekcję wykresów (Charts), oraz kolekcję, która reprezentuje obie te grupy (Sheets). Jeżeli nie mam pewności to najlepiej odwołać się do kolekcji Sheets i wybrać polecenie Add.

Metoda Sheets.Add nie wymaga podawania żadnych argumentów i jeśli użyjemy jej w takiej prostej formie, to nowy arkusz typu roboczego (Worksheet) pojawi się przed aktywnym arkuszem.

sheets.add w najprostszej formie

Argumenty metody Add

Sheets.Add posiada 4 argumenty. Pierwszy z nich to Before, który pozwala na wskazanie arkusza, przed którym program wstawi nowy arkusz. Jeśli chodzi o wskazanie tego arkusza, to mogę to zrobić za pomocą nazwy, albo indeksu. Częstym przypadkiem jest dodawanie nowego arkusza na początku i takie polecenie będzie wyglądało w ten sposób.

sheets.add z argumentem before

Drugi argument to After, który dodaje arkusz, po wskazanym jako wartość tego argumentu. Tych argumentów używamy zamiennie.

Jeśli chcę dodać nowy arkusz na samym końcu wystarczy policzyć ile jest wszystkich arkuszy i użyć tej wartości jako indeksu w kolekcji Sheets.

sheets.add z argumentem after

Trzeci argument to Count, który domyślnie przyjmuje wartość 1, ale jeśli wprowadzę tam inną liczbę, to polecenie doda dokładnie tyle arkuszy.

argument count ze wskazaniem liczby arkuszy

Efekt jednak jest taki, że arkusze nie są dodawane kolejno po sobie i jeśli korzystamy z domyślnych nazw nadawanych przez Excel, to musimy te arkusze poprzestawiać.

widok dodanych arkuszy

W przypadku dodawania kilku arkuszy można się pokusić o pętlę, która doda arkusze po kolei. Dzięki temu zostanie zachowana kolejność nadawania nazw nowym arkuszom.

pętla for next dodająca arkusze

Ostatni argument to Type i jest on odpowiedzialny za rodzaj dodanego arkusza. Domyślnym typem jest Worksheet, czyli arkusz roboczy z komórkami. Taki arkusz pojawia się również po kliknięciu w znak + przy liście arkuszy. Jeśli jednak wybierzemy z menu kontekstowego arkusza polecenie Wstaw… to pojawi się lista dostępnych typów arkuszy do wstawienia.

dostepne typy arkuszy

Argument Type pozwala na wybranie jednego z tych typów i przyjmuje wartości xlWorksheet, xlChart, xlExcel4MacroSheet, xlExcel4IntlMacroSheet, lub xlDialogSheet.

sheets.add z argumentem type

Jak nadać arkuszowi nazwę?

Nowo dodany arkusz mogę z łatwością nazwać wykorzystując jego własność Name, oraz fakt, że nowy arkusz automatycznie staje się aktywny.

dodanie arkusza i nadanie mu nazwy

Mogę też nadać nazwę podczas dodawania arkusza i ograniczyć te dwa polecenia do jednego. Wystarczy po poleceniu Sheets.Add dodać kropkę i odwołać się do własności Name.

sheets.add.name - stworzenie arkusza z nadaną nazwą

Co jednak w przypadku, kiedy wykorzystuję argumenty metody Add i chcę jednocześnie nadać nazwę dodawanego arkusza?

błędne wykorzystanie sheets.add

Taki zapis jest błędny i przy próbie wykonania tej linijki kodu pojawi się błąd. W takim wypadku pomaga objęcie argumentów metody nawiasami.

prawidłowe zastosowanie metody Add z nadaniem nazwy

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

Share on facebook
Share on linkedin
Share on twitter

Leave a Comment

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *