Excel VBA - Union và Intersect

Excel VBA có hai phương thức, thuộc đối tượng Ứng dụng, để thao tác hai hoặc nhiều phạm vi: Union và Intersect.

liên hiệp

Phương thức Union trả về tất cả các ô trong hai hoặc nhiều phạm vi được chuyển làm đối số của nó.

Lệnh sau sẽ chọn phạm vi được hiển thị trong hình dưới đây:

1 Union (Phạm vi ("A1: B4"), Phạm vi ("B3: C6")). Chọn

Bạn có thể gán bất kỳ giá trị hoặc công thức nào cho phạm vi được trả về bởi phương thức Union:

1 Union (Phạm vi ("A1: B4"), Phạm vi ("B3: C6")) = 10

Điều này sẽ nhập giá trị 10 vào mỗi ô trong Liên minh.

Bạn có thể bao hàm bất kỳ hàm nào tóm tắt một phạm vi xung quanh một phương thức Union. Ví dụ sau sẽ trả về tổng các giá trị trong Dãy A1: B4 và B3: C6:

1 Kết quả = Application.WorksheetFunction.Sum (union (Phạm vi ("A1: B4"), Phạm vi ("B3: C6")))

Bạn có thể ngạc nhiên khi nhận được giá trị trong Kết quả là 160! Mặc dù chỉ có 14 ô trong Liên minh (8 ô trong mỗi phạm vi với 2 ô là phổ biến) khi bạn nhìn vào Lựa chọn, Liên minh thực sự trả về 16 ô do đó Kết quả là 160.

Giao nhau

Phương thức Intersect chỉ trả về các ô chung trong hai hoặc nhiều phạm vi được chuyển làm đối số của nó.

Lệnh sau sẽ chọn phạm vi được hiển thị (Vùng xám) trong hình ảnh bên dưới:

1 Intersect (Phạm vi ("A1: B4"), Phạm vi ("B3: C6")). Chọn

Sử dụng Intersect

Cách sử dụng phổ biến nhất của Intersect là trong các sự kiện được liên kết với Trang tính hoặc Sổ làm việc. Nó được sử dụng để kiểm tra xem (các) ô đã thay đổi có thuộc phạm vi quan tâm hay không. Ví dụ sau với việc kiểm tra xem (các) ô đã thay đổi (được xác định bởi Mục tiêu) và Phạm vi A1: A10 có phổ biến hay không và thực hiện hành động thích hợp nếu chúng có.

Đối tượng Intersect trả về không có gì nếu không có ô chung nên Intersect (Target, Range (“A1: A10”)) Là Không có gì sẽ là True nếu không có ô chung. Việc thêm Không vào điều kiện làm cho nó Đúng chỉ khi kết quả của bài kiểm tra Giao điểm (Mục tiêu, Phạm vi (“A1: A10”)) Không có gì là Sai, nói cách khác Mục tiêu và Phạm vi A1: A10 có một số ô chung.

12345 Private Sub Worksheet_Change (ByVal Target As Range)Nếu Không Giao nhau (Mục tiêu, Phạm vi ("A1: A10")) thì Không có gì'Thực hiện hành động mong muốnKết thúc nếuKết thúc Sub

Viết bởi: Vinamra Chandra

Bạn sẽ giúp sự phát triển của trang web, chia sẻ trang web với bạn bè

wave wave wave wave wave