Предотвратяване на чувствителността към регистъра на VBA - Опция Сравняване на текст

Докато работите във VBA, често трябва да сравнявате низове. По подразбиране, VBA е чувствителен към регистър, така че ако сравните два еднакви текста и един от тях е с главни букви, а друг с малки букви, VBA ще ги разглежда като различни текстове. В този урок ще видите как да предотвратите чувствителността на регистъра към VBA.

Направете VBA регистъра нечувствителен

За да направите VBA нечувствителен към регистъра, трябва да поставите Опция Сравняване на текст в началото на модула. Първо, ще разгледаме стандартното поведение на VBA без тази опция. Това е кодът:

123456789 Ако Sheet1.Range ("A1"). Стойност = Sheet1.Range ("B1"). Стойност След товаMsgBox "Два текста са еднакви"ИначеMsgBox "Два текста са различни"Край Ако

В примера искаме да сравним низовете от A1 и B1. Ако низовете са равни, ще върнем полето със съобщение „Два текста са еднакви“. Ако те не са равни, ще върнем съобщението „Два текста са различни.

Изображение 1. Сравняване на низовете без опцията Сравняване на текст

Както можете да видите на снимката, и двата текста са еднакви, но първият е с главни букви, докато вторият е с малки букви. Поради това VBA ги смята за различни и върна това съобщение.

1234567891011 Опция Сравняване на текстПубличен под регистърSensitiveTest ()Ако Sheet1.Range ("A1"). Стойност = Sheet1.Range ("B1"). Стойност След товаMsgBox "Два текста са еднакви"ИначеMsgBox "Два текста са различни"Край АкоEnd Sub

Сега ще добавим Option Compare Text в началото на модула и ще видим разликата. Ето кода. Изпълняваме кода на същия пример:

Изображение 2. Сравняване на низовете с опцията Сравняване на текст

Сега, когато е зададена опцията Сравняване на текст, VBA става нечувствителна към регистъра и счита тези два текста за еднакви.

Сравняване на текст

Ако не декларирате Опция Сравняване на текст, можете да конвертирате низови букви, за да правите сравнения без значение за регистъра. Това е възможно чрез UCase, LCase или StrConv функция. Можете да научите повече за това тук: VBA Upper, Lower и Proper Case - Case Functions

Така ще помогнете за развитието на сайта, сподели с приятелите си

wave wave wave wave wave