Công đoàn VBA - Tham gia nhiều phạm vi bằng Excel VBA Union

Mục lục

Excel VBA Union

Union trong VBA tương tự như union trong các ngôn ngữ lập trình khác, trong VBA chúng ta sử dụng union để kết hợp hai hoặc nhiều hơn hai phạm vi để thực hiện các tập hợp hoạt động khác nhau trên chúng, câu lệnh được sử dụng cho điều này chính là union và nó được gọi là phương thức union. , ví dụ, union (Range (B2: C7), Range (D2: E7)). chọn và phương thức này sẽ chọn các ô.

Phương thức Union thực hiện nhiệm vụ tạo liên hợp của hai hoặc nhiều phạm vi và trả về kết quả là đối tượng RANGE. Điều này hoạt động giống hệt như ví dụ dưới đây với đối tượng VBA RANGE.

Cú pháp

Bây giờ hãy xem cú pháp của phương thức UNION.

Chúng tôi cần cung cấp tối thiểu 2 dãy.

  • Arg 1: Đây là phạm vi ô đầu tiên chúng ta cần tạo liên hợp.
  • Arg 2: Đây là phạm vi ô thứ hai mà chúng ta cần tạo liên hợp.

Hai tham số đầu tiên là bắt buộc, sau khi đề cập đến hai phạm vi ô, sau đó tất cả các đối số khác trở thành tùy chọn.

Khi dữ liệu nằm rải rác thành từng phần trong các ô, chúng ta cần kết hợp tất cả phạm vi dữ liệu lại với nhau thành một để thực hiện một tác vụ chung. Chúng ta có thể tạo liên hợp phạm vi phân tán thành một nhóm để thực hiện một nhiệm vụ tương tự cho tất cả các phạm vi liên hợp.

Để chọn nhiều phạm vi ô, chúng ta thường có thể sử dụng đối tượng RANGE. Ví dụ, nếu chúng ta muốn chọn dải ô từ A1 đến B5 và từ B3 đến D5, chúng ta có thể viết mã VBA như bên dưới.

Mã:

Sub Union_Example1 () Union (Range ("A1: B5"), Range ("B3: D5")). Chọn End Sub

Thao tác này sẽ chọn phạm vi ô như hình dưới đây.

Như chúng ta thấy trong hình trên, phạm vi đầu tiên được chọn từ A1 đến B5, và phạm vi thứ hai được chọn từ B3 đến D5.

Đây là kỹ thuật phổ biến mà tất cả chúng ta đã sử dụng khi viết mã. Tuy nhiên, đây không phải là phương pháp duy nhất mà chúng tôi có để viết mã trong VBA; chúng ta cũng có thể sử dụng một phương pháp nữa được gọi là "union" để tạo liên hợp của hai hoặc nhiều phạm vi.

Làm thế nào để sử dụng Phương pháp Liên minh VBA để Tham gia Nhiều Phạm vi?

Ví dụ 1

Hãy thực hiện tương tự như chúng ta đã làm trong ví dụ trên nhưng lần này bằng cách sử dụng phương thức UNION.

Bước 1 - Mở hàm UNION trong quy trình con.

Mã:

Sub Union_Example1 () Union (End Sub

Bước 2 - Đề cập đến phạm vi ô đầu tiên sử dụng đối tượng RANGE. Trong trường hợp này, tôi đang đề cập đến phạm vi ô đầu tiên là A1 đến B5 .

Mã:

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

Bước 3 - Bây giờ đề cập đến phạm vi ô thứ hai sử dụng đối tượng RANGE, trong trường hợp này, tôi đang đề cập đến phạm vi ô là từ B3 đến D5 .

Mã:

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

Bước 4 - Sau khi tạo liên hợp của các dải ô này, chúng ta cần quyết định xem chúng ta cần làm gì với dải ô liên kết này. Đặt dấu chấm (.) Để xem danh sách IntelliSense.

Mã:

Sub Union_Example1 () Union (Range ("A1: A5"), Range ("B3: B5")). Kết thúc Sub

Bước 5 - Chúng ta có thể xem tất cả các thuộc tính và phương thức có sẵn của các phạm vi này.

Đối với ví dụ này, tôi sẽ thay đổi màu Nội thất của các ô liên hợp. Đối với điều này, trước tiên tôi cần chọn thuộc tính Nội thất.

Mã:

Sub Union_Example1 () Union (Range ("A1: A5"), Range ("B3: B5")). Bên trong End Sub

Bước 6 - Với thuộc tính nội thất, chúng ta có thể làm nhiều thứ, nhưng vì chúng ta cần thay đổi màu của các ô liên hợp, tôi sẽ chọn thuộc tính Màu.

Mã:

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

Bước 7 - Bây giờ, chúng ta cần thiết lập thuộc tính màu. Tôi sẽ sử dụng thuộc tính chỉ mục màu được tích hợp sẵn là vbGreen.

Mã:

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.

Điều này là do bất kỳ biến nào chúng tôi cung cấp cho đối số đều phải chứa một số tham chiếu của các ô trong trang tính mà chúng tôi đang làm việc.

thú vị bài viết...