VBA Union - Dołącz do wielu zakresów za pomocą programu Excel VBA Union

Spisie treści

Excel VBA Union

Union w VBA jest podobny do unii w innych językach programowania, w VBA używamy union do łączenia dwóch lub więcej niż dwóch zakresów w celu wykonania na nich różnych zestawów operacji, instrukcja używana do tego jest sama unia i nazywana jest metodą unii , na przykład, union (Range (B2: C7), Range (D2: E7)). select, a ta metoda wybierze komórki.

Union wykonuje zadanie tworzenia unii dwóch lub więcej zakresów i zwraca wynik jako obiekt RANGE. Działa to dokładnie tak samo, jak w poniższym przykładzie z obiektem VBA RANGE.

Składnia

Przyjrzyjmy się teraz składni metody UNION.

Musimy dostarczyć co najmniej 2 zakresy.

  • Arg 1: To jest pierwszy zakres komórek, których potrzebujemy do utworzenia sumy.
  • Arg 2: To jest drugi zakres komórek, których potrzebujemy, aby utworzyć sumę.

Pierwsze dwa parametry są obowiązkowe, po podaniu dwóch zakresów komórek, wszystkie pozostałe stają się opcjonalne.

Gdy dane są rozproszone w komórkach, musimy połączyć cały zakres danych w jeden, aby wykonać wspólne zadanie. Możemy utworzyć sumę zakresu rozproszonego z jednym, aby wykonać podobne zadanie dla wszystkich zakresów unii.

Aby zaznaczyć wiele zakresów komórek, zwykle możemy użyć obiektu RANGE. Na przykład, jeśli chcemy wybrać zakres komórek od A1 do B5 i od B3 do D5, możemy napisać kod VBA jak poniżej.

Kod:

Sub Union_Example1 () Union (Range ("A1: B5"), Range ("B3: D5")). Wybierz End Sub

Spowoduje to wybranie zakresu komórek, jak na poniższym obrazku.

Jak widać na powyższym obrazku, pierwszy zakres jest wybierany od A1 do B5, a drugi zakres od B3 do D5.

Jest to powszechna technika, której wszyscy używaliśmy podczas kodowania. Jednak nie jest to jedyna metoda, jaką mamy do kodowania w VBA; możemy również użyć jeszcze jednej metody zwanej „sumą”, aby utworzyć sumę dwóch lub więcej zakresów.

Jak korzystać z metody VBA Union, aby dołączyć do wielu zakresów?

Przykład 1

Wykonajmy to samo ujęcie, co w powyższym przykładzie, ale tym razem przy użyciu metody UNION.

Krok 1 - Otwórz funkcję UNION w podprocedurze.

Kod:

Sub Union_Example1 () Union (End Sub

Krok 2 - Wspomnij o pierwszym zakresie komórek za pomocą obiektu RANGE. W tym przypadku wspominam o pierwszym zakresie komórek jako od A1 do B5 .

Kod:

Sub Union_Example1 () Union (Range ("A1: A5"), End Sub

Krok 3 - Teraz wspomnij o drugim zakresie komórek za pomocą obiektu RANGE, w tym przypadku wspominam o zakresie komórek od B3 do D5 .

Kod:

Sub Union_Example1 () Union (Range ("A1: A5"), Range ("B3: B5")) End Sub

Krok 4 - Po utworzeniu unii tych zakresów komórek musimy zdecydować, co musimy zrobić z tym zakresem unii komórek. Umieść kropkę (.), Aby wyświetlić listę IntelliSense.

Kod:

Sub Union_Example1 () Union (Range ("A1: A5"), Range ("B3: B5")). Napis końcowy

Krok 5 - Możemy zobaczyć wszystkie dostępne właściwości i metody tych zakresów.

W tym przykładzie zmienię kolor wnętrza komórek unii. W tym celu najpierw muszę wybrać właściwość Wnętrze.

Kod:

Sub Union_Example1 () Union (Range ("A1: A5"), Range ("B3: B5")). Wewnętrzny koniec Sub

Krok 6 - Przy właściwościach wewnętrznych możemy zrobić wiele rzeczy, ale ponieważ musimy zmienić kolor komórek unii, wybiorę właściwość Color.

Kod:

Sub Union_Example1 () Union (Range ("A1: A5"), Range ("B3: B5")). Interior.Color End Sub

Krok 7 - Teraz musimy ustawić właściwość koloru. Użyję wbudowanej właściwości indeksu kolorów jako vbGreen.

Kod:

Sub Union_Example1 () Union (Range ("A1: A5"), Range ("B3: B5")). Interior.Color = vbGreen End Sub

Step 8 - Now if I run the code colours of the union cells will be changed to Green colour.

Like this using Union method, we can create unison of two or more range of cells.

Example #2 - Use Variables to Store Range of Cells

All most all the coders use variables to store the reference of the range of cells. For example, look at the below code.

Code:

Sub Union_Example2() Dim Rng1 As Range Dim Rng2 As Range Set Rng1 = Range("A1:B5") Set Rng2 = Range("B3:D5") Union(Rng1, Rng2).Interior.Color = vbGreen End Sub

First, I have declared two variables as Range.

Dim Rng1 As Range

Dim Rng2 As Range

Then I have set the reference for these two variables.

Set Rng1 = Range(“A1:B5”)

Set Rng2 = Range(“B3:D5”)

Now variable rng1 holds the reference of Range(“A1:B5”) and the second variable rng2 holds the reference of Range(“B3:D5”).

Then I have applied UNION function to change the interior colour of these range of cells.

This also works exactly the same as the previous one, but using variable makes the code very flexible to use.

Error with Union Function

As I told all the references should be mandatory for the UNION method. For example, look at the below code.

Code:

Sub Union_Example3() Dim Rng1 As Range Dim Rng2 As Range Dim Rng3 As Range Set Rng1 = Range("A1:B5") Set Rng2 = Range("B3:D5") Union(Rng1, Rng2, Rng3).Interior.Color = vbGreen End Sub

This is similar to the previous, but here I have declared one more variable as Range.

Dim Rng3 As Range

But I have not set the reference to this variable. Rather I just supplied the variable to the UNION function.

Union(Rng1, Rng2, Rng3).Interior.Color = vbGreen

If I run this code, we will get the error like the below.

Dzieje się tak, ponieważ każda zmienna, którą dostarczamy do argumentu, powinna zawierać odniesienie do komórek w arkuszu, nad którym pracujemy.

Interesujące artykuły...