Toán tử logic VBA - HOẶC, VÀ, XOR, KHÔNG, LÀ, & THÍCH

VBA cho phép bạn sử dụng các toán tử logic , Hoặc, Không, Xor để so sánh các giá trị. Các toán tử được coi là “Boolean”, có nghĩa là chúng trả về kết quả là True hoặc False.

Nếu bạn muốn tìm hiểu cách so sánh các chuỗi, hãy nhấp vào đây: VBA Compare Strings - StrComp

Nếu bạn muốn tìm hiểu cách sử dụng toán tử so sánh, hãy nhấp vào đây: Toán tử so sánh VBA - Không bằng & hơn thế nữa

Sử dụng toán tử logic và

Các toán tử logic so sánh hai hoặc nhiều điều kiện. Nếu tất cả các điều kiện là true, toán tử sẽ trả về True. Nếu ít nhất một trong các điều kiện không đúng, toán tử sẽ trả về Sai. Đây là một ví dụ:

123456789101112 Dim intA As IntegerDim intB As IntegerDim blnResult As BooleanintA = 5intB = 5Nếu intA = 5 Và intB = 5 ThìblnResult = ĐúngKhácblnResult = SaiKết thúc nếu

Trong ví dụ này, chúng tôi muốn kiểm tra xem cả hai intAintB bằng 5. Nếu điều này là đúng, giá trị của Boolean blnResult sẽ là True, ngược lại, nó sẽ là False.

Đầu tiên, chúng tôi đặt các giá trị của intAintB đến 5:

12 intA = 5intB = 5

Sau đó, chúng tôi sử dụng trong câu lệnh If để kiểm tra xem các giá trị có bằng 5 hay không:

12345 Nếu intA = 5 Và intB = 5 ThìblnResult = ĐúngKhácblnResult = SaiKết thúc nếu

Vì cả hai biến đều bằng 5, blnResult trả về True:

Hình ảnh 1. Sử dụng toán tử logic And trong VBA

Sử dụng toán tử hoặc toán tử logic

Các Hoặc toán tử logic so sánh hai hoặc nhiều điều kiện. Nếu ít nhất một trong các điều kiện là true, nó sẽ trả về True. Nếu không có điều kiện nào là đúng, toán tử sẽ trả về Sai. Đây là mã cho ví dụ:

123456789101112 Dim intA As IntegerDim intB As IntegerDim blnResult As BooleanintA = 5intB = 10Nếu intA = 5 Hoặc intB = 5 ThìblnResult = ĐúngKhácblnResult = SaiKết thúc nếu

Trong ví dụ này, chúng tôi muốn kiểm tra xem cả hai intA bằng 5. hoặc intB bằng 10. Nếu bất kỳ điều kiện nào trong số này là đúng, giá trị của Boolean blnResult sẽ là True, ngược lại, nó sẽ là False.

Đầu tiên, chúng tôi đặt giá trị của intA đến 5 và intB đến 10:

12 intA = 5intB = 10

Sau đó, chúng tôi sử dụng Hoặc toán tử trong câu lệnh If để kiểm tra xem có giá trị nào bằng 5 hay không:

12345 Nếu intA = 5 Hoặc intB = 5 ThìblnResult = ĐúngKhácblnResult = SaiKết thúc nếu

Như intA giá trị là 5, blnResult trả về True:

Hình ảnh 2. Sử dụng toán tử Or logic trong VBA

Sử dụng toán tử không logic

Các Không toán tử logic kiểm tra một hoặc nhiều điều kiện. Nếu các điều kiện là đúng, toán tử trả về Sai. Nếu không, nó trả về True. Đây là mã cho ví dụ:

12345678910 Dim intA As IntegerDim blnResult As BooleanintA = 5Nếu không (intA = 6) ThìblnResult = ĐúngKhácblnResult = SaiKết thúc nếu

Trong ví dụ này, chúng tôi muốn kiểm tra xem giá trị của intA không bằng 6. Nếu intA khác 6, giá trị của Boolean blnResult sẽ là True, ngược lại, nó sẽ là False.

Đầu tiên, chúng tôi đặt giá trị của intA đến 5:

1 intA = 5

Sau đó, chúng ta sử dụng toán tử Not trong câu lệnh If để kiểm tra xem giá trị của intA có khác 6 hay không:

12345 Nếu không (intA = 6) thìblnResult = ĐúngKhácblnResult = SaiKết thúc nếu

Như intA giá trị là 5, blnResult trả về True:

Hình 3. Sử dụng toán tử Không logic trong VBA

Sử dụng toán tử logic Xor

Các Xor toán tử logic so sánh hai hoặc nhiều điều kiện. Nếu chính xác một trong các điều kiện là true, nó sẽ trả về True. Nếu không có điều kiện nào là đúng hoặc nhiều điều kiện đúng, nó sẽ trả về Sai. Đây là mã cho ví dụ:

123456789101112 Dim intA As IntegerDim intB As IntegerDim blnResult As BooleanintA = 5intB = 10Nếu intA = 5 Xor intB = 5 ThìblnResult = ĐúngKhácblnResult = SaiKết thúc nếu

Trong ví dụ này, chúng tôi muốn kiểm tra xem chính xác một trong các giá trị (intA hoặc IntB) có bằng 5. Nếu chỉ một điều kiện là đúng, giá trị của Boolean blnResult sẽ là True, ngược lại, nó sẽ là False.

Đầu tiên, chúng tôi đặt giá trị của intA đến 5 và intB đến 10:

12 intA = 5intB = 10

Sau đó, chúng tôi sử dụng Hoặc toán tử trong câu lệnh If để kiểm tra xem có giá trị nào bằng 5 hay không:

12345 Nếu intA = 5 Xor intB = 5 ThìblnResult = ĐúngKhácblnResult = SaiKết thúc nếu

Như intA giá trị là 5 và intB là 10, blnResult trả về True:

Hình ảnh 4. Sử dụng toán tử logic Xor trong VBA

Là nhà điều hành

Toán tử Is kiểm tra nếu hai biến đối tượng lưu trữ cùng một đố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ề.

Giống như nhà điều hành

Toán tử Like có thể so sánh hai chuỗi để tìm các kết quả phù hợp không chính xác. Ví dụ này sẽ kiểm tra xem một chuỗi bắt đầu bằng “Mr.”

1234567891011121314 Sub LikeDemo ()Dim strName As StringDim blnResult As BooleanstrName = "Ông Michael James"Nếu strName Like "Mr *" thìblnResult = ĐúngKhácblnResult = SaiKết thúc nếuKết thúc Sub

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