Як порівнювати рядки у 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

Додати коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *