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

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à một đố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 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 ô thì 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ư dưới đây.

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 trong khi viết mã. Tuy nhiên, đây không phải là phương pháp duy nhất mà chúng ta có khi 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?

Bạn có thể tải về Mẫu VBA Union Excel này tại đây - Mẫu VBA Union Excel

Ví dụ 1

Hãy thực hiện thao tác 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à 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 kết 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 hiệp nên 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 

Bước 8 - Bây giờ nếu tôi chạy, màu mã của các ô liên hợp sẽ được chuyển thành màu Xanh lục.

Như vậy bằng cách sử dụng phương pháp Union, chúng ta có thể tạo đồng loạt hai hoặc nhiều phạm vi ô.

Ví dụ # 2 - Sử dụng các biến để lưu trữ phạm vi ô

Hầu hết tất cả các bộ mã đều sử dụng các biến để lưu trữ tham chiếu của phạm vi ô. Để biết ví dụ, hãy xem đoạn mã dưới đây.

Mã:

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

Đầu tiên, tôi đã khai báo hai biến là Phạm vi.

Dim Rng1 As Range

Dim Rng2 As Range

Sau đó, tôi đã đặt tham chiếu cho hai biến này.

Đặt Rng1 = Range (“A1: B5”)

Đặt Rng2 = Phạm vi (“B3: D5”)

Bây giờ biến rng1 giữ tham chiếu của Range (“A1: B5”) và biến thứ hai rng2 giữ tham chiếu của Range (“B3: D5”).

Sau đó, tôi đã áp dụng hàm UNION để thay đổi màu bên trong của các phạm vi ô này.

Điều này cũng hoạt động giống hệt như trước đó nhưng sử dụng biến làm cho mã rất linh hoạt để sử dụng.

Lỗi với Chức năng Liên minh

Như tôi đã nói, tất cả các tham chiếu phải là bắt buộc đối với phương pháp UNION. Để biết ví dụ, hãy xem đoạn mã dưới đây.

Mã:

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

Điều này tương tự với phần trước nhưng ở đây tôi đã khai báo thêm một biến nữa là Range.

Dim Rng3 As Range

Nhưng tôi chưa đặt tham chiếu cho biến này, thay vào đó tôi chỉ cung cấp biến cho hàm UNION.

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

Nếu tôi chạy mã này, chúng tôi sẽ gặp lỗi như bên dưới.

Đ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.


$config[zx-auto] not found$config[zx-overlay] not found