Toán tử VBA “Is” được sử dụng để so sánh hai tham chiếu đối tượng.
Nếu các tham chiếu đối tượng giống nhau, Là sẽ trả về TRUE. Nếu các tham chiếu đối tượng khác nhau, Là sẽ trả về FALSE.
Không có gì
Việc sử dụng phổ biến nhất của Là toán tử là để kiểm tra xem một đối tượng đã được gán cho một biến đối tượng hay chưa.
Bạn có thể xem cách này hoạt động như thế nào trong quy trình dưới đây:
123456789101112 | Sub IsNothing ()Dim ws As Worksheet'Đặt ws = ActiveSheetNếu ws không có gì thìMsgBox "Không được chỉ định"KhácMsgBox "Đã chỉ định"Kết thúc nếuKết thúc Sub |
Điều này rất hữu ích để ngăn chặn các lỗi gây ra bởi một đối tượng không được gán cho biến đối tượng.
Giao nhau - Không có gì
Thông thường, điều này được sử dụng với Sự kiện thay đổi trang tính để xác định xem phạm vi mục tiêu có nằm trong một phạm vi được chỉ định hay không.
1234567 | 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ìMsgBox "Giao nhau"Kết thúc nếuKết thúc Sub |
Là - So sánh các đối tượng
Toán tử Is cũng có thể được sử dụng để so sánh các đối tượng.
Hãy xem một ví dụ. Ở đây chúng tôi sẽ gán hai trang tính cho các đối tượng trang tính rng1 và rng2, kiểm tra xem hai đối tượng trang tính có lưu trữ cùng một trang tính hay không:
12345678910111213 | Sub CompareObjects ()Dim ws1 As Worksheet, ws2 As WorksheetĐặt ws1 = Trang tính ("Trang tính1")Đặt ws2 = Trang tính ("Trang tính2")Nếu ws1 Là ws2 ThìMsgBox "Cùng WS"KhácMsgBox "Các WS khác nhau"Kết thúc nếuKết thúc Sub |
Tất nhiên, các đối tượng trang tính không giống nhau, vì vậy "WSs khác nhau" được trả về.