Zakres wyboru VBA

Zakres wyboru Excel VBA

Po podstawieniu języka VBA ważne jest, aby zrozumieć, jak pracować z zakresem komórek w arkuszu. Gdy zaczniesz wykonywać kody praktycznie przez większość czasu, będziesz musiał pracować z szeregiem komórek. Dlatego ważne jest, aby zrozumieć, jak pracować z zakresem komórek, a jedną z takich koncepcji jest VBA „Selection of Range”. W tym artykule pokażemy, jak pracować z „Zakresem wyboru” w Excel VBA.

Wybór i zakres to dwa różne tematy, ale kiedy mówimy, aby wybrać zakres lub wybór zakresu, jest to jedna koncepcja. RANGE to obiekt, „Selection” to właściwość, a „Select” to metoda. Ludzie często mylą się z tymi terminami, ważne jest, aby znać ogólne różnice.

Jak wybrać zakres w Excel VBA?

Możesz pobrać ten szablon VBA Selection Range Excel tutaj - VBA Selection Range Szablon Excel

Przykład 1

Na przykład załóżmy, że chcesz zaznaczyć komórkę A1 w arkuszu, a następnie najpierw musimy określić adres komórki za pomocą obiektu RANGE, jak poniżej.

Kod:

Po wzmiance o komórce, którą musimy zaznaczyć wstaw kropkę, aby zobaczyć listę IntelliSense, która jest skojarzona z obiektem RANGE.

Z tej różnorodności list wybiera się metodę „Wybierz”.

Kod:

 Sub Range_Example1 () Range („A1”). Wybierz End Sub 

Teraz ten kod wybierze komórkę A1 w aktywnym arkuszu.

Jeśli chcesz zaznaczyć komórkę w różnych arkuszach, najpierw musimy określić arkusz roboczy według jego nazwy. Aby określić arkusz roboczy, musimy użyć obiektu „WORKSHEET” i wprowadzić nazwę arkusza w cudzysłowie.

Na przykład, jeśli chcesz zaznaczyć komórkę A1 w arkuszu „Arkusz danych”, najpierw określ arkusz, tak jak poniżej.

Kod:

 Sub Range_Example1 () Worksheets ("Data Sheet") End Sub 

Następnie kontynuuj kod, aby określić, co musimy zrobić w tym arkuszu. W „Arkuszu danych” musimy wybrać komórkę A1, więc kod będzie miał wartość RANGE („A1”).

Kod:

 Sub Range_Example1 () Worksheets ("Data Sheet"). Range ("A1"). Wybierz End Sub 

Podczas próby wykonania tego kodu otrzymamy poniższy błąd.

Powodem tego jest „nie możemy bezpośrednio dostarczyć obiektu zakresu i wybrać metody do obiektu arkuszy”.

Najpierw musimy wybrać lub aktywować arkusz VBA, a następnie możemy zrobić wszystko, co chcieliśmy.

Kod:

 Sub Range_Example1 () Worksheets ("Data Sheet"). Aktywuj zakres ("A1"). Wybierz End Sub 

Teraz spowoduje to zaznaczenie komórki A1 w arkuszu „Arkusz danych”.

Przykład # 2 - Praca z aktualnie wybranym zakresem

Zaznaczanie to co innego, a praca z już wybranym zakresem komórek jest inna. Załóżmy, że chcesz wstawić wartość „Hello VBA” do komórki A1, a następnie możemy to zrobić na dwa sposoby.

Po pierwsze, możemy bezpośrednio przekazać kod VBA jako RANGE („A1”). Wartość = „Hello VBA”.

Kod:

 Sub Range_Example1 () Range („A1”). Value = „Hello VBA” End Sub 

Ten kod spowoduje wstawienie wartości „Hello VBA” do komórki A1 niezależnie od tego, która komórka jest aktualnie wybrana.

Spójrz na powyższy wynik kodu. Kiedy wykonujemy ten kod, wstawia on wartość „Hello VBA”, mimo że aktualnie wybraną komórką jest B2.

Po drugie, możemy wstawić wartość do komórki za pomocą właściwości „Selection”. W tym celu najpierw musimy ręcznie wybrać komórkę i wykonać kod.

Kod:

 Sub Range_Example1 () Selection.Value = "Hello VBA" End Sub 

Ten kod spowoduje wstawienie wartości „Hello VBA” do aktualnie wybranej komórki. Na przykład spójrz na poniższy przykład wykonania.

Kiedy wykonałem kod, moja aktualnie wybrana komórka to B2, a nasz kod wstawił tę samą wartość do aktualnie wybranej komórki.

Teraz wybiorę komórkę B3 i wykonam, tam również otrzymamy tę samą wartość.

Jeszcze jedną rzeczą, którą możemy zrobić z właściwością „selection”, jest wstawienie wartości do więcej niż jednej komórki. Na przykład wybiorę teraz zakres komórek od A1 do B5.

Jeśli teraz wykonam kod, dla wszystkich zaznaczonych komórek otrzymamy wartość „Hello VBA”.

Tak więc, prosta różnica między określeniem adresu komórki przez obiekt RANGE i właściwość Selection polega na tym, że kod obiektowy Range wstawi wartość do komórek, które zostały wyraźnie określone.

Ale w obiekcie Selection nie ma znaczenia, w której komórce się znajdujesz, wstawi wspomnianą wartość do wszystkich wybranych komórek.

O czym należy pamiętać tutaj

  • Nie możemy bezpośrednio podać metody select we właściwości Selection.
  • RANGE jest przedmiotem, a selekcja jest własnością.
  • Zamiast zakresu możemy użyć właściwości CELLS.