Komórki scalone w VBA

Scalanie komórek kodem VBA jest możliwe przy użyciu metody Merge obiektu Range.

Np. dla komórek z zakresu A1:A10

Range(“A1:A10”).Merge

Zdjęcie scalenia to metoda UnMerge

Range(“A1:A10”).UnMerge

To, co istotne w metodach stosowanych w odniesieniu do komórek scalonych (m.in. ClearContents) nie można się odwołać do pojedynczej komórki scalonego zakresu  – trzeba jako Range wpisać cały zakres.

 


 

Kurs Excel - makra i VBA dla początkujących

 

Komórki scalone

Komórki scalone to zakres komórek  scalony do jednej komórki. Zakres ten musi mieć kształt prostokąta (kwadratu).
Narzędzie scalania komórek jest dostępne na karcie Narzędzia główne, grupa opcji Wyrównanie.

Po zaznaczeniu zakresu komórek i naciśnięciu przycisku Scal i wyśrodkuj następuje scalenie komórek do jednej. Jeżeli scalane komórki nie są puste, wyświetli się komunikat ostrzegawczy przed opróżnieniem ich zawartości. Nowa, scalona komórka będzie miała adres i zawartość pierwszej komórki u góry z  lewej strony scalanego zakresu.
Przycisk ten działa jak przełącznik – ustawiając się na którejś z komórek zakresu i naciskając go ponownie – nastąpi zdjęcie scalenia komórek.

Czy warto stosować komórki scalone? Z pewnością tak, choć trzeba pamiętać, że pełnią one rolę głównie ozdobną. Pozwalają na ładne przedstawienie danych w formie tabelki, ale mogą się pojawić problemy przy analizie danych czy odwołaniach funkcji. Jeżeli argumentem jakieś funkcji, w zupełnie innym miejscu arkusza czy skoroszytu jest wartość którejś z dalszych komórek zakresu, wstawiona będzie wartość pusta.
Na screenie widoczny jest przykład, gdy w kolumnie A wstawiona jest data, a w kolumnie B – formuła wyliczająca ilość dni do końca miesiąca w stosunku do daty z kolumny A w tym samym wierszu:

Wartości są prawidłowe tylko w wierszu 2 i 12 czyli tam, gdzie rozpoczyna się scalony zakres (A2 i A12). Wstawiając więc taką formułę czy też zmieniając zakres , trzeba uważać.

 

 


Kurs Excel - zaawansowane techniki

Zakres dynamiczny

Zasady tworzenia nazwanych zakresów komórek opisałam w notce:
Nazwa zakresu
Tak zdefiniowane zakresy są jednak sztywne, zapisane na stałe.  Chcąc je rozszerzyć – trzeba wprowadzić zmiany, edytując odwołanie nazwy.
Nazwy można jednak także opisywać formułą automatycznie zmieniającą zakres wchodzących w jej skład komórek.

Załóżmy, że mamy tabelkę jak na screenie:

Jak zdefiniować taki zakres, który automatycznie zmieni się po dopisaniu wartości w kolejnych komórkach?  Można to zrobić poprzez taką formułę:
=PRZESUNIĘCIE(Arkusz3!$A$1;;;ILE.NIEPUSTYCH(Arkusz3!$A:$A);1)

Tak zdefiniowany zakres będzie się automatycznie zmieniać, gdy dopiszemy kolejne wiersze. W wyniku działania funkcji – wysokość zakresu jest określona  przez liczbę niepustych komórek w kolumnie A.
Bardzo przydatne narzędzie m.in. w liście wybieralnej.


 

 

Nazwa zakresu

Gdy często odwołujemy się do jakiegoś określonego zakresu komórek, warto jest zdefiniować i zapisać pod jakąś nazwą. Służy do tego grupa opcji Nazwy zdefiniowane na karcie Formuły.

Możemy zrobić to na kilka sposobów:

  • zaznaczamy zakres komórek, któremu chcemy przypisać nazwę, klikamy na przycisk Definiuj nazwę i wypełniamy formularz:
    Nadajemy unikalną nazwę, ewentualnie wpisujemy komentarz. Pamiętajmy o ustawieniu prawidłowego zakresu – dana nazwa może być przypisana do całego skoroszytu lub do konkretnego arkusza. Jeżeli ustawimy Zakres na konkretny arkusz – w innych arkuszach ta nazwa nie będzie widziana i nie będzie można się do niej odwoływać. Domyślną opcją jest Skoroszyt.
  • klikamy w przycisk Menedżer nazw, a następnie Nowy…
    Dalsze kroki – jak w poprzednim przykładzie
  • zaznaczamy zakres komórek, w którym znajdują się także planowane nazwy zakresów i naciskamy przycisk Utwórz z zaznaczenia:
    W ten sposób zostały utworzone 2 zakresy o nazwie Dziewczynki i Chłopcy.

 

Przegląd i zakres poszczególnych nazw można sprawdzić w Menedżerze nazw.
Można też je usuwać czy edytować.
A sam Menedżer nazw służy nie tylko do definiowania zakresów, ale także np. do tworzenia własnych formuł – ale to już temat na oddzielną notkę.


 

 

Kurs Excel dla sprzedawców