Excel - zaznaczanie komórek za pomocą makra

Dzisiaj wesprę się kodem który niedawno prezentowałem przy okazji makra sprawdzającego. Poprzednio nie wspomniałem o sytuacji gdy uruchamiamy makro w jednym z arkuszy skoroszytu natomiast dane, które tym makrem obrabiamy znajdują się w innym arkuszu.
Ważne są 2 rzeczy:
Każde makro przypisane jest do konkretnego arkusza. W przypadku rejestrowania makra (Narzędzia-Makro-Zarejestruj makro) umieszczenie kodu w konkretnym module zależy od tego w jakim aktualnie arkuszu zaczynamy je rejestrować.
Jeżeli makro tworzymy ręcznie korzystając z edytora visual basic to umieszczamy je w dowolnym wybranym module.

Aby uruchomić makro w innym arkuszu (niż ten do którego został pierwotnie przypisany) należy zaznaczyć ten arkusz poleceniem Sheets(”nazwa_przypisana_arkusza”).Select

Kiedy z kolei odnosimy się do danych w innym arkuszu używamy polecenia Worksheets(”nazwa_przypisana_arkusza”).Activate
a następnie polecenia Range(”Zakres_komórek”).Select dopiero wówczas wykonujemy operacje na komórce lub zakresie komórek (np czyszczenie zaznaczonego obszaru poleceniem Selection.ClearContents)

nazwa_przypisana_arkusza to nazwa np Arkusz1 lub wpisana przez uzytkownika
zakres_komórek to np A1 lub np E4:F12

W przykładzie (rysunek poniżej) makro uwaga opisane komentarzem procedura zdarzenia znajduje się w tym samym module co makro sprawdzaj Chodzi o definicję makra, która znajduje się niżej a nie jest widoczna w oknie przykładu na rysunku.
Z racji położenia w tym samym module uruchomienie (wywołanie jego nazwy) nie wymaga poprzedzenia go poleceniem Sheets(”nazwa_przypisana_arkusza”).Select

makrosprawdzajace5.JPG

onlyregistered1.png

Przydała Ci się ta informacja? Subskrybuj mój kanał RSS, by być na bieżąco z nowymi wiadomościami.