Как сравнивать строки в vba: с примерами


Для сравнения строк в VBA можно использовать следующие методы:

Способ 1. Сравнение строк с учетом регистра

 SubCompareStrings ()
    Dim i As Integer

    For i = 2 To 10
        Range(" C " & i) = StrComp(Range(" A " & i), Range(" B " & i)) = 0
    Next i
End Sub

Этот макрос выполнит сравнение строк с учетом регистра между строками в совпадающих ячейках в диапазонах A2:A10 и B2:B10 и вернет TRUE или FALSE в диапазоне C2:C10 , чтобы указать, равны ли строки или нет.

Способ 2. Сравнение строк без учета регистра.

 SubCompareStrings ()
    Dim i As Integer

    For i = 2 To 10
        Range(" C " & i) = StrComp(Range(" A " & i), Range(" B " & i), vbTextCompare) = 0
    Next i
End Sub

Этот макрос выполнит сравнение строк без учета регистра между строками в совпадающих ячейках в диапазонах A2:A10 и B2:B10 .

В следующих примерах показано, как использовать каждый метод на практике со следующими списками строк в Excel:

Пример 1. Сравнение строк с учетом регистра в VBA

Мы можем создать следующий макрос для выполнения сравнения строк с учетом регистра между каждой совпадающей строкой в столбцах A и B:

 SubCompareStrings ()
    Dim i As Integer

    For i = 2 To 10
        Range(" C " & i) = StrComp(Range(" A " & i), Range(" B " & i)) = 0
    Next i
End Sub

Когда мы запускаем этот макрос, мы получаем следующий вывод:

сравнение строк с учетом регистра в VBA

Столбец C возвращает TRUE , если строки равны и имеют один и тот же регистр.

В противном случае столбец C возвращает FALSE .

Пример 2. Сравнение строк без учета регистра в VBA

Мы можем создать следующий макрос для выполнения сравнения строк без учета регистра между каждой совпадающей строкой в столбцах A и B:

 SubCompareStrings ()
    Dim i As Integer

    For i = 2 To 10
        Range(" C " & i) = StrComp(Range(" A " & i), Range(" B " & i), vbTextCompare) = 0
    Next i
End Sub

Когда мы запускаем этот макрос, мы получаем следующий вывод:

Сравнение строк без учета регистра в VBA

Столбец C возвращает TRUE , если строки равны, независимо от регистра.

Столбец C возвращает FALSE, только если строки не равны.

Примечание . Полную документацию по функции StrComp в VBA можно найти здесь .

Дополнительные ресурсы

В следующих руководствах объясняется, как выполнять другие распространенные задачи в VBA:

VBA: как заменить символы в строке
VBA: как удалить специальные символы из строки
VBA: как преобразовать строку в int

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *