Предотвратить чувствительность к регистру в VBA - вариант сравнения текста

При работе в VBA вам часто приходится сравнивать строки. По умолчанию, VBA чувствителен к регистру, поэтому, если вы сравните два одинаковых текста, и один из них в верхнем регистре, а другой в нижнем регистре, VBA будет рассматривать их как разные тексты. В этом руководстве вы узнаете, как предотвратить регистрацию в VBA.

Делаем VBA нечувствительным к регистру

Чтобы сделать VBA нечувствительным к регистру, вам нужно поставить Вариант Сравнить текст в начале модуля. Сначала мы рассмотрим стандартное поведение VBA без установки этой опции. Это код:

123456789 Если Sheet1.Range ("A1"). Value = Sheet1.Range ("B1"). Value ThenMsgBox "Два текста одинаковые"ЕщеMsgBox "Два текста разные"Конец, если

В этом примере мы хотим сравнить строки из A1 и B1. Если строки равны, мы вернем окно сообщения с сообщением «Два текста одинаковы». Если они не равны, мы вернем сообщение «Два текста разные.

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

Как вы можете видеть на картинке, оба текста одинаковы, но первый в верхнем регистре, а второй в нижнем регистре. Из-за этого VBA считает их разными и вернул это сообщение.

1234567891011 Вариант Сравнить текстPublic Sub CaseSensitiveTest ()Если Sheet1.Range ("A1"). Value = Sheet1.Range ("B1"). Value ThenMsgBox "Два текста одинаковые"ЕщеMsgBox "Два текста разные"Конец, еслиКонец подписки

Теперь мы добавим Option Compare Text в начало модуля и увидим разницу. Вот код. Запускаем код на том же примере:

Изображение 2. Сравнение строк с опцией «Сравнить текст»

Теперь, когда установлен Option Compare Text, VBA становится нечувствительным к регистру и считает эти два текста одинаковыми.

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

Если вы не заявляете Вариант Сравнить текст, вы можете преобразовать регистры строк, чтобы проводить сравнения без учета регистра. Это возможно с помощью функции UCase, LCase или StrConv. Вы можете узнать больше об этом здесь: VBA Верхний, Нижний и Правильный регистр - Функции регистра

Вы поможете развитию сайта, поделившись страницей с друзьями

wave wave wave wave wave