Гость
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как сравнить строки без учета регистра / 20 сообщений из 20, страница 1 из 1
20.08.2012, 12:21
    #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
20.08.2012, 12:29
    #37922791
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сравнить строки без учета регистра
Код: vbnet
1.
If LCase(x) = LCase(y) Then
...
Рейтинг: 0 / 0
20.08.2012, 13:11
    #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
20.08.2012, 14:46
    #37923058
alexey_grigorov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сравнить строки без учета регистра
Спасибо!
...
Рейтинг: 0 / 0
20.08.2012, 15:47
    #37923190
Диклевич Александр
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сравнить строки без учета регистра
а также StrComp быстрее прямого сравнения строк
...
Рейтинг: 0 / 0
21.08.2012, 22:41
    #37925358
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сравнить строки без учета регистра
а instr еще быстрее
...
Рейтинг: 0 / 0
22.08.2012, 10:54
    #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
30.08.2012, 19:11
    #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
30.08.2012, 19:16
    #37937778
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сравнить строки без учета регистра
так естественно не работает, надо в одну строку писать
...
Рейтинг: 0 / 0
31.08.2012, 10:07
    #37938240
alexey_grigorov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сравнить строки без учета регистра
Shocker.Pro,

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

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

Ну и выход из цикла при совпадении надо бы сделать.
...
Рейтинг: 0 / 0
31.08.2012, 12:04
    #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
31.08.2012, 17:44
    #37939226
alexey_grigorov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сравнить строки без учета регистра
Разобрался. Всем большое спасибо!
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
06.07.2016, 09:24
    #39268499
intersk
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сравнить строки без учета регистра
вот такой код. Как можно оптимизировать?
Код: vbnet
1.
If adn Like "*" & "иск" & "*" Or adn Like "*" & "Иск" & "*" Then
...
Рейтинг: 0 / 0
06.07.2016, 09:31
    #39268506
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сравнить строки без учета регистра
Код: vbnet
1.
If adn Like "*[Ии]ск*" Then
...
Рейтинг: 0 / 0
06.07.2016, 09:36
    #39268510
The_Prist
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сравнить строки без учета регистра
intersk,
Код: vbnet
1.
If InStr(1,and, "иск",1) > 0 Then
...
Рейтинг: 0 / 0
06.07.2016, 10:53
    #39268562
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сравнить строки без учета регистра
The_Pristintersk,
Код: vbnet
1.
If InStr(1,and, "иск",1) > 0 Then

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

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

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


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