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

Widoczność arkusza

Visible czyli widoczność arkusza to jedna z właściwości obiektu Worksheet.  Określa, czy dany arkusz jest widoczny czy nie. 

kliknij, aby powiększyć

Właściwość ta może przybierać jedną z 3 wartości:

kliknij, aby powiększyć

Wartości te to:

    • xlSheetHidden
      arkusz jest ukryty
    • xlSheetVeryHidden
      arkusz jest bardzo ukryty, bez możliwości odkrycia w Excelu
    • xlSheetVisible
      arkusz jest odkryty

Po wykonaniu kodu takiej przykładowej procedury w skoroszycie z trzema arkuszami:

Public Sub Ukryte()
Arkusz1.Visible = xlSheetVisible
Arkusz2.Visible = xlSheetHidden
Arkusz3.Visible = xlSheetVeryHidden
End Sub

Efekt końcowy w arkuszu wygląda tak:

Arkusz1 – jest widoczny na liście zakładek

kliknij, aby powiększyć

Arkusz2 – niewidoczny na na liście zakładek, ale można go odkryć (klikniecie prawym przyciskiem myszy na pasku zakładek i wybór opcji Odkryj z menu podręcznego)

Następnie w formularzu wybieramy nazwę arkusza do odkrycia. Jeżeli jest kilka ukrytych arkuszy, widoczne są tu wszystkie:  

Arkusz3 – nie jest widoczny ani na pasku zakładek, ani w formularzu z ukrytymi arkuszami. Widać go jedynie w edytorze VBA w oknie obiektów Excela:

kliknij, aby powiększyć

 Właściwość Visible jest często stosowana i bardzo przydatna. 


Kurs Programowanie VBA w Excelu 365 od podstaw

 

Aktywowanie arkusza

Aktywowanie arkusza to jedna z metod obiektu VBA Worksheet
Może występować również w modułach ogólnych VBA. 

kliknij, aby powiększyć

Metoda ta powoduje aktywację czyli przejście do konkretnego arkusza.  Arkusz nie może być ukryty. Istotne jest też to, że po wywołaniu tej metody nastąpi automatyczne uruchomienie zdarzenia arkusza po aktywacji

Po aktywowaniu arkusza – staje się on arkuszem aktywnym, w VBA można w stosunku do niego używać również nazwy ActiveSheet

Jest to jednak z częściej używanych metod obiektu VBA Worksheet


A tu możesz mi postawić kawę: 

Nazwa kodowa arkusza

Nazwa kodowa arkusza to ta nazwa arkusza widoczna w edytorze VBA (Alt+F11).

kliknij, aby powiększyć

W nawiasie, po prawej stronie nazwy kodowej znajduje się nazwa arkusza widoczna w Excelu. 

Standardowo, nazwa kodowa każdego arkusza w nowym skoroszycie jet zawsze taka sama, jak jego nazwa w Excelu. Zmiana nazwy arkusza nie ma jednak wpływu na zmianę jego nazwy kodowej.

Nazwę kodową arkusza można też zmienić. Wystarczy zaznaczyć jego nazwę i nacisnąć przycisk F4, aby pokazało się okno właściwości modułu. 


Chcąc zmienić nazwę  kodową arkusza wpisujemy nową nazwę w opcji  Name
Efekt końcowy wygląda tak:

Nazwa kodowa arkusza nie może zawierać żadnych znaków specjalnych, nie może też mieć spacji. W ten sam sposób mnożna też zmieniać nazwy kodowe modułów ogólnych. 

W kodzie VBA nazwa kodowa arkusza to właściwość CodeName obiektu Worksheet.  

Public Sub Nazwy()
Dim NazwaArkusza As String
Dim NazwaKodowaArkusza As String
NazwaArkusza = ActiveSheet.Name ’nazwa arkusza
NazwaKodowaArkusza = ActiveSheet.CodeName ’nazwa kodowa arkusza
End Sub

Ja w swoich projektach często stosuję nazwy kodowe arkuszy. W ten sposób kod jest odporny na wszelkie zmiany nazw w oknie Excela – użytkownicy często lubią to robić. 

Uwaga: zdarzyło mi się kiedyś pracować nad projektem dla klienta pracującego na wersji angielskiej Excela i w pewnym momencie zaczęły pojawiać się dziwne błędy. Okazało się, że Excel sam zaczął zmieniać nazwy kodowe arkuszy (te standardowe, wstawiane automatycznie). W moim edytorze był Arkusz1, Arkusz2, Arkusz3 – u klienta natomiast Sheet1, Sheet2, Sheet3 i edytor VBA nie znajdował używanych przeze nazw kodowych. Rozwiązaniem okazała się symulowana zmiana nazwy kodowej – wchodziłam we właściwości, zmieniałam nazwę kodową i od razu wracałam do tej, która była wcześniej. Pomogło. Nie wiem, z czego to wynikało, a całkiem często zdarza mi się tworzyć aplikacje dla klientów korzystających czy to z wersji angielskiej czy niemieckiej.   Na wszelki wypadek jednak od tej pory zawsze zmieniam nazwy kodowe. 
Generalnie zawsze zmieniam nazwy kodowe modułów ogólnych, szczególnie wtedy, gdy kod aplikacji Excela jest rozbudowany i modułów jest więcej. 


A tu możesz mi postawić kawę: 

buycoffee.to/marzatela

 

Obiekt VBA Worksheet

Obiekt Worksheet jest jednym z obiektów VBA związanych z arkuszem.  Jest to jeden z ważniejszych obiektów VBA, trudno się bez niego obejść w kodzie funkcji czy procedur. . 
Ma swoje
właściwości

oraz

metody

Notka ta będzie rozbudowywana po wstawieniu kolejnych wpisów związanych z tym obiektem, opisujących jego metody i właściwości.


Kurs Programowanie VBA w Excelu 365 od podstaw