Zakres wyboru VBA - Jak wybrać zakres w Excel VBA?

Spisie treści

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, musisz pracować z zakresem 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 mylą się z tymi terminami. Ważne jest, aby znać ogólne różnice.

Jak wybrać zakres w Excel VBA?

Przykład 1

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

Kod:

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

Tworząc tę ​​różnorodność list, wybiera 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 podwójnych cudzysłowach.

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 po prostu wstawi wartość „Hello VBA” do komórki A1, niezależnie od tego, która komórka jest aktualnie zaznaczona.

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.

Teraz, jeśli wykonam kod, dla wszystkich wybranych komórek otrzymamy wartość „Hello VBA”.

Tak więc, prosta różnica między określaniem 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 zaznaczonych komórek.

O czym należy pamiętać tutaj

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

Interesujące artykuły...