VBA Union

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.

Kiedy 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 wybrany 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 w kodowaniu w VBA, możemy również użyć jeszcze jednej metody zwanej „union”, aby utworzyć sumę dwóch lub więcej zakresów.

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

Możesz pobrać ten szablon VBA Union Excel tutaj - szablon VBA Union Excel

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 - W przypadku właściwości 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 

Krok 8 - Teraz, jeśli uruchomię, kolory kodu komórek unii zostaną zmienione na kolor zielony.

Podobnie jak w przypadku metody Union, możemy utworzyć unison dwóch lub więcej zakresów komórek.

Przykład # 2 - Użyj zmiennych do przechowywania zakresu komórek

Większość koderów używa zmiennych do przechowywania odniesienia do zakresu komórek. Na przykład spójrz na poniższy kod.

Kod:

 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 

Najpierw zadeklarowałem dwie zmienne jako zakres.

Dim Rng1 As Range

Dim Rng2 As Range

Następnie ustawiłem odniesienie dla tych dwóch zmiennych.

Ustaw Rng1 = Zakres („A1: B5”)

Ustaw Rng2 = Zakres („B3: D5”)

Teraz zmienna rng1 zawiera odniesienie do Range („A1: B5”), a druga zmienna rng2 zawiera odniesienie do Range („B3: D5”).

Następnie zastosowałem funkcję UNION, aby zmienić kolor wnętrza tych zakresów komórek.

Działa to również dokładnie tak samo, jak poprzednie, ale użycie zmiennej sprawia, że ​​kod jest bardzo elastyczny w użyciu.

Błąd z funkcją Union

As I told all the references should be mandatory for the UNION method. For an 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.

This is because whatever the variable we supply to the argument should hold some reference of the cells in the worksheet we are working on.