Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.07.2009, 20:06   #1
SoFuWa
Пользователь
 
Регистрация: 14.08.2008
Сообщений: 64
По умолчанию Сравнение текста

Приветствую
Я в скрипте использую InStr(x,y) для сравнения строк текста, можно ли сделать так что бы проверка была по целому слову, например:
InStr(x,y)
x=Вышгородская ул.
y=Вышгород

Вышгород это город, а Х это улица, и нужно чтоб искался только Вышгород. А Вышгородская ул. не искалась
Вот такая проблема
SoFuWa вне форума Ответить с цитированием
Старый 18.07.2009, 20:14   #2
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,858
По умолчанию

If x=y then msgbox "Слова совпадают"

Если такой вариант не устраивает, объясните, почему, и приведите весь код.
EducatedFool вне форума Ответить с цитированием
Старый 18.07.2009, 20:16   #3
Aent
Форумчанин
 
Аватар для Aent
 
Регистрация: 17.07.2009
Сообщений: 519
По умолчанию

SoFuWa, Вам нужно уточнить что Вы понимаете под словом.
Текст заканчивающийся пробелом или любым символом отличным от буквы ? В любом случае лобовое решение - использовать оператор like.
Aent вне форума Ответить с цитированием
Старый 18.07.2009, 20:18   #4
The_Prist
Участник клуба
 
Аватар для The_Prist
 
Регистрация: 17.07.2009
Сообщений: 1,088
По умолчанию

Используйте такую конструкцию
Код:
If cells(1,1) = "Вышгород" then 'это по полному совпадению
If cells(1,1) like "*Вышгород*" then 'это по частичному
WebMoney - R298726502453; Яндекс.Деньги - 41001332272872
www.excel-vba.ru
The_Prist вне форума Ответить с цитированием
Старый 18.07.2009, 20:25   #5
SoFuWa
Пользователь
 
Регистрация: 14.08.2008
Сообщений: 64
По умолчанию

мне вообщем нужно искать ключевик в X, не равенство и поиск в X Y
например
x=Вышгородская ул.
y=Вышгородская

Должно найтись, целое слово

А если
x=Вышгородская ул.
y=Вышгород
то не должно найтись так как не целое слово.
В X может быть вообще много слов.
SoFuWa вне форума Ответить с цитированием
Старый 18.07.2009, 20:27   #6
SoFuWa
Пользователь
 
Регистрация: 14.08.2008
Сообщений: 64
По умолчанию

Под словом я понимаю текст заканчивающийся пробелом
SoFuWa вне форума Ответить с цитированием
Старый 18.07.2009, 20:35   #7
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,858
По умолчанию

Код:
Sub test()
    x = "Вышгородская ул."
    y = "Вышгородская"
    If InStr(1, x & " ", y & " ", 1) Then MsgBox "совпало!"
End Sub
EducatedFool вне форума Ответить с цитированием
Старый 18.07.2009, 21:28   #8
SoFuWa
Пользователь
 
Регистрация: 14.08.2008
Сообщений: 64
По умолчанию

Спасибо работает. Можно тут еще один вопрос. У меня раньше было вверху написано Option Compare Text, и этот оператор работал, ну регистр при сравнении не учитывался, а теперь мне понадобилось что бы регистр учитывался я убрал оператор, а ренистр всё равно не учитывается ! хотя до того как ставил оператор учитывался, глупость какая то. Я написал в начале модуля скрипта, Option Compare Binary а всё равно регистр не учитывается, в чём может быть дело? Нужно именно чтоб для всего было, каждый раз го прописывать для всех операторов естественно долго (vbTextBinary).
SoFuWa вне форума Ответить с цитированием
Старый 18.07.2009, 21:57   #9
SoFuWa
Пользователь
 
Регистрация: 14.08.2008
Сообщений: 64
По умолчанию

Притом что в другом екзелевском файле всё работает!
SoFuWa вне форума Ответить с цитированием
Старый 19.07.2009, 00:38   #10
Aent
Форумчанин
 
Аватар для Aent
 
Регистрация: 17.07.2009
Сообщений: 519
По умолчанию

EducatedFool, приведённый вами код даст неправильный
результат для х = "Завышгородская ул" при Option Compare Text.
Как минимум надо добавлять пробел к х и y ещё и слева.
Aent вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сравнение времени POX Общие вопросы Delphi 10 01.07.2009 08:27
С++. Сравнение строк maxlav Помощь студентам 8 25.06.2009 04:33
Сравнение дат for_regist1 БД в Delphi 21 26.01.2009 01:29
Сравнение текста ??? KurtWagner Общие вопросы Delphi 2 20.01.2009 10:34
попиксельное сравнение borodaj Общие вопросы Delphi 7 31.05.2007 13:24