Menedżer nazw

Menedżer nazw to jedno z narzędzi Excela, bardzo przydatne w codziennej pracy. Służy głównie do nadawania własnych nazw wyznaczonym zakresom komórek, obiektom, wartościom czy formułom. 

Menedżer nazw znajduje się na karcie Formuły w grupie opcji Nazwy zdefiniowane

kliknij, aby powiększyć

Najszybszym i najprostszym sposobem na zdefiniowanie zakresu jest zaznaczenie obszaru, naciśnięcie przycisku Utwórz z zaznaczenia

Nadana w ten sposób nazwa jest widoczna na liście nazw Menedżera nazw.

kliknij, aby powiększyć

Na screenie widoczna jest także nazwa Tabela1 – wszystkie obiekty tabel od razu też są tu widoczne, automatycznie wstawiane przez Excela.  
Zadeklarowana nazwa Kurs_Euro jest dostępna w każdym arkuszu tego skoroszytu i może być wykorzystana w każdej formule np.: =A2*Kurs_Euro

Można też przypisać nazwę do dynamicznego zakresu poprzez funkcję np. 
=PRZESUNIĘCIE($E$2;;;ILE.NIEPUSTYCH($E$2:$E$100);1)

kliknij, aby powiększyć

W tym przypadku wysokość zakresu jest uzależniona od ilości niepustych komórek w zakresie. Idealnie nadaje się do tworzenia list w Poprawności danych

kliknij, aby powiększyć

Przy tworzeniu nazw warto zwrócić uwagę na to, że dana nazwa może obowiązywać zarówno w całym skoroszycie jak i pojedynczym arkuszu. Domyślnym ustawieniem jest Skoroszyt:

kliknij, aby powiększyć

Wszystkie nazwy muszą zaczynać się od znaku _ lub litery. Nie mogą też zawierać spacji ani niedozwolonych znaków. No i oczywiście – muszą być unikalne, nie mogą być takie same jak inne nazwy (np.oznaczenia komórek typu A1, b10 itp.) 

Zdefiniowane w Excelu nazwy są też dostępne w edytorze VBA:
Range(„Kurs_Euro”) 
lub
[Kurs_Euro]


A tu możesz mi postawić kawę: 

buycoffee.to/marzatela

Wykorzystany zakres arkusza

UsedRange to jedna z właściwości obiektu Worksheet.  Zwraca wartość typu Range wyznaczony przez pierwszą i ostatnią niepustą komórkę w arkuszu. 

kliknij, aby powiększyć

Jeżeli np. pierwsza niepusta komórka to B2, a ostatnia to D10, to właściwość UsedRange to zakres Range(„B2:D10”). 
Trzeba pamiętać też o tym, że nawet jeżeli komórka wydaje się pusta, wcale nie musi taka być – może tam być np. formuła zwracającą wartość tekstu o zerowej długości. Także wstawienie zwykłej spacji w komórce sprawia, że nie jest ona już pusta. 

Do czego można ją wykorzystać? Możliwości tu jest wiele: do zaznaczania, formatowania, czyszczenia itp.  
Jedną z ciekawszych możliwości może być też sprawdzenie, czy w arkuszu nie ma np. jakichś niepotrzebnych śmieci. Mogą się pojawić m.in.  przy wielokrotnym kopiowaniu i wstawianiu różnych danych z innych plików. 
Może to w efekcie spowodować znaczne i zupełnie niepotrzebne zwiększenie rozmiaru pliku i spowolnienie pracy. 
Np.

Public Sub ZaznaczUsedRange()
ActiveSheet.UsedRange.Select
End Sub

Po uruchomieniu tej procedury – w arkuszu zostanie zaznaczony cały wykorzystywany zakres komórek. 
Np.

kliknij, aby powiększyć

Tu akurat wstawiłam spację w komórce K19. Normalnie jej nie widać, ale  dla zakresu UseRange ma znaczenie. Czasem warto sprawdzić. 



A tu możesz mi postawić kawę: 

buycoffee.to/marzatela

Właściwość Range.Rows

Range.Rows to właściwość obiektu Range, związana z wierszami zakresu

kliknij, aby powiększyć

Ma również swoje właściwości i metody. 

W praktyce najczęściej wykorzystywana jest właściwość Rows.Count czyli liczba wierszy (wartość typu Long) w zakresie

Przykładowy kod: 

Public Sub IloscWierszy()
Dim a As Long
Dim b As Long
’ilość wierszy w zakresie:
a = Range(„A11:A20”).Rows.Count
’ilość wierszy w arkuszu
b = Range(„A:A”).Rows.Count
End Sub

 


A tu możesz mi postawić kawę: 

buycoffee.to/marzatela

 

 

Wartość zakresu

Range.Value to podstawowa właściwość obiektu Range.

kliknij, aby powiększyć

Dotyczy tylko zakresu jednokomórkowego, dla większej ilości komórek pojawia się błąd 13.  Zwraca wartość zapisaną w komórce. 

Właściwość Value jest wartością domyślną obiektu Range. Samo odwołanie do Range oznacza, że chodzi o Value.

Przykładowy kod: 

Public Sub WartoscKomorki()
Dim Zakres As Range
Dim a
Dim b
Set Zakres = Range(„A1”)
a = Zakres.Value
b = Zakres
Set Zakres = Nothing
End Sub

Range.Value to właściwość nie tylko do odczytu, ale również do zapisu. 
Np. zapisanie w komórce A1 aktywnego arkusza bieżącej daty systemowej. 

Public Sub WartoscKomorki()
Dim Zakres As Range
Set Zakres = Range(„A1”)
Zakres=Date()
Set Zakres = Nothing
End Sub

 


A tu możesz mi postawić kawę: 

buycoffee.to/marzatela

 

 

Aktywacja zakresu

Aktywacja zakresu to jedna z metod obiektu Range.

Metoda ta aktywuje komórkę zdefiniowaną w zakresie. Jeżeli zakres zawiera więcej niż jedną komórkę – zaznacza cały zakres i aktywuje pierwszą komórkę w tym zakresie. Choć tu warto zauważyć, że zgodnie z dokumentacją – metoda Activate powinna być stosowana tylko w stosunku do jednej komórki. W praktyce jednak – działa właściwie tak jak metoda Range.Select. Przynajmniej w wersjach Excela 2010 i 2019. 

Metoda ta jest często stosowana zaraz po aktywacji arkusza i ustawieniu jako czynnej jednej komórki.