powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как сравнить строки без учета регистра
20 сообщений из 20, страница 1 из 1
Как сравнить строки без учета регистра
    #37922773
alexey_grigorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть 2 dbf файла, нужно сравнить ячейки (строковые), проблема в заглавных буквах, одна база все заглавные, другая обыкновенные. Как сделать сравнение без учета регистра?

код программы:

Sub Find_Matches()
Dim CompareRange As Variant, x As Variant, y As Variant
Set CompareRange = Worksheets("База").Range("А1:А150")
For Each x In Selection
For Each y In CompareRange
If x = y Then x.Offset(0, 1) = "Да"
Next y
Next x
End Sub

Спасибо за ответ!
...
Рейтинг: 0 / 0
Как сравнить строки без учета регистра
    #37922791
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: vbnet
1.
If LCase(x) = LCase(y) Then
...
Рейтинг: 0 / 0
Как сравнить строки без учета регистра
    #37922872
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: vbnet
1.
strcomp(txt1,txt2,vbTextCompare)


Option Compare Text results in string comparisons based on a case-insensitive text sort order determined by your system's locale .
...
Рейтинг: 0 / 0
Как сравнить строки без учета регистра
    #37923058
alexey_grigorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо!
...
Рейтинг: 0 / 0
Как сравнить строки без учета регистра
    #37923190
Диклевич Александр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а также StrComp быстрее прямого сравнения строк
...
Рейтинг: 0 / 0
Как сравнить строки без учета регистра
    #37925358
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а instr еще быстрее
...
Рейтинг: 0 / 0
Как сравнить строки без учета регистра
    #37925803
Казанский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А средствами Excel еще быстрее
Код: vbnet
1.
2.
3.
4.
5.
6.
Sub Find_Matches()
With Selection.Columns(1).Offset(, 1)
    .FormulaR1C1 = "=IF(ISNUMBER(MATCH(RC[-1],База!R1C1:R150C1,)),""Да"","""")"
    .Value = .Value
End With
End Sub
...
Рейтинг: 0 / 0
Как сравнить строки без учета регистра
    #37937776
alexey_grigorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro,
If x = y Then x.Offset(0, 1) = "Да"

а как вместо "Да" вставить значение из поля? например:
If x = y
Then x.Offset(0, 1) = y.Offset(0, 2) так естественно не работает )
...
Рейтинг: 0 / 0
Как сравнить строки без учета регистра
    #37937778
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
так естественно не работает, надо в одну строку писать
...
Рейтинг: 0 / 0
Как сравнить строки без учета регистра
    #37938240
alexey_grigorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro,

В 1-ну тоже не работает (( ставит пустые ячейки (а хотел, чтобы брал значение с другого листа, ячейка рядом с той, которая попадает под совпадение)
...
Рейтинг: 0 / 0
Как сравнить строки без учета регистра
    #37938412
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тестовый файл в студию
...
Рейтинг: 0 / 0
Как сравнить строки без учета регистра
    #37938453
Казанский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> ячейка рядом с той, которая попадает под совпадение

Наверно
Код: vbnet
1.
If x = y Then x.Offset(0, 1) = y.Offset(0, 1)

Ну и выход из цикла при совпадении надо бы сделать.
...
Рейтинг: 0 / 0
Как сравнить строки без учета регистра
    #37938475
Казанский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
И опять же, Excel - это прежде всего формулы:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
Sub Find_Matches()
With Selection.Columns(1).Offset(, 1)
    .FormulaR1C1 = "=VLOOKUP(RC[-1],База!R1C1:R150C2,2,)"
    .Value = .Value
    .SpecialCells(xlConstants, xlErrors).Clear
End With
End Sub
...
Рейтинг: 0 / 0
Как сравнить строки без учета регистра
    #37939226
alexey_grigorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Разобрался. Всем большое спасибо!
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Как сравнить строки без учета регистра
    #39268499
intersk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вот такой код. Как можно оптимизировать?
Код: vbnet
1.
If adn Like "*" & "иск" & "*" Or adn Like "*" & "Иск" & "*" Then
...
Рейтинг: 0 / 0
Как сравнить строки без учета регистра
    #39268506
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: vbnet
1.
If adn Like "*[Ии]ск*" Then
...
Рейтинг: 0 / 0
Как сравнить строки без учета регистра
    #39268510
Фотография The_Prist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
intersk,
Код: vbnet
1.
If InStr(1,and, "иск",1) > 0 Then
...
Рейтинг: 0 / 0
Как сравнить строки без учета регистра
    #39268562
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
The_Pristintersk,
Код: vbnet
1.
If InStr(1,and, "иск",1) > 0 Then

не, тогда он найдет и "ИСк"
...
Рейтинг: 0 / 0
Как сравнить строки без учета регистра
    #39268577
Фотография The_Prist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,

ну да, точно.
...
Рейтинг: 0 / 0
Как сравнить строки без учета регистра
    #39269153
intersk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.ProThe_Pristintersk,
Код: vbnet
1.
If InStr(1,and, "иск",1) > 0 Then

не, тогда он найдет и "ИСк"
пусть ищет в любых сочетаниях! это то что нужно, спасибо всем !
...
Рейтинг: 0 / 0
20 сообщений из 20, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как сравнить строки без учета регистра
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]