Arkusz aktywacyjny Excel VBA
Podczas pracy w VBA czasami odwołujemy się do innego arkusza lub używamy właściwości innego arkusza, przypuśćmy, że pracujemy w arkuszu 1, ale chcemy wartości z komórki A2 w arkuszu 2, jeśli odwołujemy się do wartości arkusza 2 bez uprzedniej aktywacji arkusza, będziemy nie możemy uzyskać dostępu do wartości, więc aby aktywować arkusz w VBA, używamy właściwości arkusza roboczego jako Arkusze robocze („Arkusz2”).
W programie Excel zawsze pracujemy z arkuszami roboczymi. Arkusze mają swoje własne nazwy, które ułatwiają identyfikację. W zwykłych arkuszach kalkulacyjnych bezpośrednio nawigujemy po dokładnych klawiszach skrótów lub bezpośrednio wybieramy arkusz, klikając je. Jednak w VBA nie jest to takie proste; musimy podać nazwę arkusza, do którego się odnosimy, a następnie możemy użyć metody „Wybierz”, aby wybrać arkusz.
![](https://cdn.know-base.net/6144577/vba_activate_sheet_vba_examples_to_activate_excel_sheet.png.webp)
Co to jest metoda aktywacji VBA?
Jak sama nazwa wskazuje, aktywuje określony arkusz. Aby aktywować arkusz, musimy podać dokładną nazwę arkusza za pomocą obiektu arkuszy roboczych. Na przykład, jeśli chcesz aktywować arkusz o nazwie „Sprzedaż”, możesz użyć poniższego kodu.
Arkusze robocze („Sprzedaż”). Aktywuj
Składnia
Tak więc składnia metody Activate jest następująca.
Arkusz roboczy („Nazwa arkusza”) Aktywuj
Tutaj arkusz roboczy jest obiektem, a aktywacja jest metodą.
Przykład 1 - Aktywuj arkusz według numeru indeksu
W programie Excel pracujemy z wieloma zestawami arkuszy i często musimy przechodzić między arkuszami, aby wykonać zadanie. W VBA możemy użyć metody Activate, aby aktywować określony arkusz Excela.
Na przykład utworzyłem trzy arkusze o nazwach „Sprzedaż 2015”, „Sprzedaż 2016” i „Sprzedaż 2017”.
![](https://cdn.know-base.net/6144577/vba_activate_sheet_vba_examples_to_activate_excel_sheet_2.png.webp)
Arkusze możemy aktywować na dwa sposoby. Jednym z nich jest użycie numerów indeksu arkuszy, a innym użycie samej nazwy arkusza.
Teraz, jeśli chcę, aby wybrać 2 nd arkusz, będę korzystać z obiektu Worksheet i podać numer indeksu arkusz jako 2.
Kod:
Sub Activate_Example1 () Worksheets (2) .Aktywuj End Sub
![](https://cdn.know-base.net/6144577/vba_activate_sheet_vba_examples_to_activate_excel_sheet_3.png.webp)
Uruchomienie kodu klawiszem F5 lub ręczne uruchomienie spowoduje aktywację drugiego arkusza, czyli „Sales 2016”.
![](https://cdn.know-base.net/6144577/vba_activate_sheet_vba_examples_to_activate_excel_sheet.gif)
Jeśli chcę aktywować trzeci arkusz, użyję 3 jako numeru indeksu arkusza.
Kod:
Sub Activate_Example1 () Worksheets (3) .Aktywuj End Sub
![](https://cdn.know-base.net/6144577/vba_activate_sheet_vba_examples_to_activate_excel_sheet_4.png.webp)
Spowoduje to aktywację trzeciego arkusza, tj. „Sprzedaż 2017”.
![](https://cdn.know-base.net/6144577/vba_activate_sheet_vba_examples_to_activate_excel_sheet_5.png.webp)
Teraz będę zamienić 2 nd i arkusze trzecich.
![](https://cdn.know-base.net/6144577/vba_activate_sheet_vba_examples_to_activate_excel_sheet_6.png.webp)
Technicznie rzecz biorąc, „Sprzedaż 2017” to mój trzeci arkusz, a „Sprzedaż 2016 to mój drugi arkusz. Teraz użyję numeru indeksu arkusza jako 3 i zobaczę, co się stanie.
Kod:
Sub Activate_Example1 () Worksheets (3) .Aktywuj End Sub
![](https://cdn.know-base.net/6144577/vba_activate_sheet_vba_examples_to_activate_excel_sheet_4.png.webp)
Moim zdaniem musi wybrać arkusz „Sprzedaż 2017”, ale wybierze arkusz „Sprzedaż 2016”, ponieważ w zamówieniu „Sprzedaż 2016” jest trzecim arkuszem.
![](https://cdn.know-base.net/6144577/vba_activate_sheet_vba_examples_to_activate_excel_sheet_2.gif)
Dlatego zawsze bezpieczną opcją jest aktywowanie arkusza według jego nazwy.
Przykład # 2 - Aktywuj arkusz według jego nazwy
Teraz zobaczymy, jak aktywować arkusze według jego nazwy. W miejscu numeru indeksu arkusza należy podać nazwę arkusza w cudzysłowie.
Kod:
Sub Activate_Example2 () Arkusze robocze („Sales 2016”). Aktywuj End Sub
![](https://cdn.know-base.net/6144577/vba_activate_sheet_vba_examples_to_activate_excel_sheet_7.png.webp)
Po ręcznym uruchomieniu kodu lub za pomocą klawisza skrótu F5 aktywowałoby to arkusz „Sprzedaż 2016” niezależnie od pozycji w skoroszycie.
![](https://cdn.know-base.net/6144577/vba_activate_sheet_vba_examples_to_activate_excel_sheet_3.gif)
Nie tylko obiekt Arkusze, ale możemy również użyć obiektu „Arkusze”, aby aktywować arkusz.
Poniżej znajduje się kod.
Kod:
Sub Activate_Example2 () Sheets („Sales 2016”). Activate End Sub
![](https://cdn.know-base.net/6144577/vba_activate_sheet_vba_examples_to_activate_excel_sheet_8.png.webp)
Arkusze robocze mają dostęp tylko do obiektu Worksheets i nie mają dostępu do arkuszy „Chart”. Jeśli używasz obiektu Arkusze , możemy uzyskać dostęp do wszystkich arkuszy w skoroszycie.
Przykład 3 - Aktywuj arkusz z innego skoroszytu
Tak jak musimy wspomnieć nazwę arkusza, aby aktywować dany arkusz, podobnie w przypadku aktywacji arkusza z innego skoroszytu wymaga również nazwy „Skoroszyt”.
Kod:
Sub Activate_Example3 () skoroszyty („Sales File.xlsx”). Arkusze („Sales 2016”). Activate End Sub
![](https://cdn.know-base.net/6144577/vba_activate_sheet_vba_examples_to_activate_excel_sheet_9.png.webp)
Spowoduje to aktywację arkusza „Sales 2016” ze skoroszytu „Sales File.xlsx”.
Aktywuj arkusz a wybierz metodę arkusza
Możemy użyć metod do wykonania tej samej akcji, czyli metod Activate i Select. Istnieje niewielka różnica między tymi dwiema metodami.
# 1 - Aktywuj metodę
Korzystając z metody Activate, możemy aktywować tylko określony arkusz.
Na przykład spójrz na poniższy kod.
Kod:
Sub Activate_Example () Worksheets („Sales 2016”). Activate End Sub
![](https://cdn.know-base.net/6144577/vba_activate_sheet_vba_examples_to_activate_excel_sheet_10.png.webp)
Jak wiemy, ten kod wybierze arkusz roboczy „Sprzedaż 2016”.
# 2 - Wybierz metodę
Korzystając z metody Select, możemy faktycznie wykonywać również inne zadania.
Teraz spójrz na poniższy kod.
Kod:
![](https://cdn.know-base.net/6144577/vba_activate_sheet_vba_examples_to_activate_excel_sheet_11.png.webp)
Ten kod nie tylko aktywuje arkusz „Sales 2016”, ale także wybiera zakres komórek od A1 do A10.