VBA Excel. Операторы сравнения

Операторы сравнения чисел и строк, ссылок на объекты (Is) и строк по шаблону (Like), использующиеся в VBA Excel. Их особенности, примеры вычислений.

Операторы сравнения чисел и строк

Операторы сравнения чисел и строк представлены операторами, состоящими из одного или двух математических знаков равенства и неравенства:

  • <   – меньше;
  • <= – меньше или равно;
  • >   – больше;
  • >= – больше или равно;
  • =   – равно;
  • <> – не равно.

Синтаксис:

  • Результат – любая числовая переменная;
  • Выражение – выражение, возвращающее число или строку;
  • Оператор – любой оператор сравнения чисел и строк.

Если переменная Результат будет объявлена как Boolean (или Variant), она будет возвращать значения False и True. Числовые переменные других типов будут возвращать значения 0 (False) и -1 (True).

Операторы сравнения чисел и строк работают с двумя числами или двумя строками. При сравнении числа со строкой или строки с числом, VBA Excel сгенерирует ошибку Type Mismatch (несоответствие типов данных):

Сравнение строк начинается с их первых символов. Если они оказываются равны, сравниваются следующие символы. И так до тех пор, пока символы не окажутся разными или одна или обе строки не закончатся.

Значения буквенных символов увеличиваются в алфавитном порядке, причем сначала идут все заглавные (прописные) буквы, затем строчные. Если необходимо сравнить длины строк, используйте функцию Len.

Оператор Is – сравнение ссылок на объекты

Оператор Is предназначен для сравнения двух переменных со ссылками на объекты.

Синтаксис:

  • Результат – любая числовая переменная;
  • Объект – переменная со ссылкой на любой объект.

Если обе переменные Объект1 и Объект2 ссылаются на один и тот же объект, Результат примет значение True. В противном случае результатом будет False.

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

Оператор Like – сравнение строк по шаблону

Оператор Like предназначен для сравнения одной строки с другой по шаблону.

Синтаксис:

  • Результат – любая числовая переменная;
  • Выражение – любое выражение, возвращающее строку;
  • Шаблон – любое строковое выражение, которое может содержать знаки подстановки.

Строка, возвращенная аргументом Выражение, сравнивается со строкой, возвращенной аргументом Шаблон. Если обе строки совпадают, переменной Результат присваивается значение True, иначе – False.

Со знаками подстановки для оператора Like вы можете ознакомиться в статье Знаки подстановки для шаблонов.

Содержание рубрики VBA Excel по тематическим разделам со ссылками на все статьи.

5 комментариев для “VBA Excel. Операторы сравнения”

  1. Евгений

    Добрый день, знающие подскажите.
    Сравниваю два списка ТМЦ. Раскладываю каждое ТМЦ на слова (Split) в переменную в одном списке, сравниваю с каждым словом другого списка, при максимальном количестве совпадений засчитываю общее совпадение ТМЦ.
    Использую оператор Like. Сравниваю две переменные.
    If temp(x) Like SKU(y) Then
    point = point + 1
    Но в переменную SKU(у) попадают слова ТМЦ с кавычками.
    Варианты: *SKU(у)*; “*SKU(у)*” не работают.
    Подскажите.

    1. Евгений

      Здравствуйте, Евгений!
      Если нужно, чтобы кавычки добавились вокруг SKU(у):

      или, чтобы кавычки добавились вокруг temp(x):

      1. Евгений

        Как раз наоборот, в переменную sku(y) попадают кавычки; их и надо игнорировать.
        Как с переменной использовать знаки подстановки?

      2. Евгений

        Как раз наоборот, необходимо игнорировать кавычки в переменной, с помощью знаков подстановки для шаблонов.
        temp(x) = стол
        sku(y) =”стол
        Сравнивая эти переменные будет ложь.
        temp(x) like ?sku(y) заменить кавычку используя знак вопроса?

        1. Евгений

          Евгений, знаки подстановки могут увеличить количество символов в строке, а не уменьшить. Добавьте еще одну переменную, например, skutemp, чтобы записывать в нее слова без кавычек:

          Или убирайте кавычки перед разбивкой фразы на слова.

Добавить комментарий

Ваш комментарий будет опубликован после прохождения обязательной модерации. Исходящие ссылки не допускаются. Время модерации составит от нескольких минут до нескольких часов в зависимости от времени суток и занятости модератора.