VBA cho phép bạn sử dụng các toán tử logic Và, 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 Và 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 intA và intB 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 intA và intB đến 5:
12 | intA = 5intB = 5 |
Sau đó, chúng tôi sử dụng Và 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 |