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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 28.01.2014, 14:00   #1
Amirhan
Пользователь
 
Регистрация: 02.03.2011
Сообщений: 13
Восклицание Создание процедуры поиска по тексту

Народ, нужно создать процедуру поиска по тексту, чтоб искала определенную фразу в тексте, ума не приложу как делать это, кто сможет помочь?
Amirhan вне форума Ответить с цитированием
Старый 28.01.2014, 14:29   #2
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

if Текст Like "*моя фраза*" then Нашлось-таки!!!
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 28.01.2014, 14:35   #3
Amirhan
Пользователь
 
Регистрация: 02.03.2011
Сообщений: 13
По умолчанию

Почему то не признает like
Amirhan вне форума Ответить с цитированием
Старый 28.01.2014, 14:37   #4
Amirhan
Пользователь
 
Регистрация: 02.03.2011
Сообщений: 13
По умолчанию

У меня идет поиск в определенных ячейках
Amirhan вне форума Ответить с цитированием
Старый 28.01.2014, 14:51   #5
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

не знаю что у Вас "идет", потому что не видел ни кода, ни формул, ни данных
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 29.01.2014, 00:46   #6
alex77755
Форумчанин
 
Аватар для alex77755
 
Регистрация: 14.02.2009
Сообщений: 753
По умолчанию

Код:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$H$1" Then
        Dim S, X
        S = [a1] ' где ищем
        X = [h1] ' что ищем
        MsgBox IIf(InStr(1, S, X) > 0, """" & X & """" & " начинается с позиции " & InStr(1, S, X), "Нет вхождения!"), 64, ""
    End If
End Sub
помогу решить контрольные VB6, VBA (недорого)
Alex77755@mail.ru
alex77755 вне форума Ответить с цитированием
Старый 11.02.2014, 11:35   #7
Amirhan
Пользователь
 
Регистрация: 02.03.2011
Сообщений: 13
По умолчанию

Цитата:
Сообщение от alex77755 Посмотреть сообщение
Код:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$H$1" Then
        Dim S, X
        S = [a1] ' где ищем
        X = [h1] ' что ищем
        MsgBox IIf(InStr(1, S, X) > 0, """" & X & """" & " начинается с позиции " & InStr(1, S, X), "Нет вхождения!"), 64, ""
    End If
End Sub
Извините, не совсем я понял как работает процедура, поясните если не затруднит!
Как вызвать ее потом??

Последний раз редактировалось Amirhan; 11.02.2014 в 12:27.
Amirhan вне форума Ответить с цитированием
Старый 11.02.2014, 12:15   #8
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Ещё вариант:
Код:
код, осуществляющий поиск указанного текста во всех листах

Option Explicit

Sub tt()
Dim sh As Worksheet
Dim iCell As Range
Dim iSearchText$, iAddress$
iSearchText$ = "qwer"

For Each sh In Worksheets
Set iCell = sh.UsedRange.Find _
(What:=iSearchText$, LookIn:=xlValues, LookAt:=xlWhole)

If Not iCell Is Nothing Then
iAddress$ = iCell.Address
Do
Set iCell = sh.UsedRange.FindNext(After:=iCell)
MsgBox sh.Name & "!" & iCell.Address
Loop While Not iCell Is Nothing And iCell.Address <> iAddress$
End If
Next

End Sub
xlWhole возможно нужно заменить на xlPart - "по вкусу"
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 11.02.2014, 12:27   #9
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

используйте
CreateObject("VBScript.RegExp")
RegExp - сросто создан для поиска фраз в тексте.


из анекдота:
-- Вы не программист, случайно?
-- да, а как Вы догадались???
-- Ваши советы АБСОЛЮТНО точные, но ровно в такой же степени для меня бесполезные!!!
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 11.02.2014, 12:38   #10
Amirhan
Пользователь
 
Регистрация: 02.03.2011
Сообщений: 13
По умолчанию

Цитата:
Сообщение от Hugo121 Посмотреть сообщение
Ещё вариант:
Код:
код, осуществляющий поиск указанного текста во всех листах

Option Explicit

Sub tt()
Dim sh As Worksheet
Dim iCell As Range
Dim iSearchText$, iAddress$
iSearchText$ = "qwer"

For Each sh In Worksheets
Set iCell = sh.UsedRange.Find _
(What:=iSearchText$, LookIn:=xlValues, LookAt:=xlWhole)

If Not iCell Is Nothing Then
iAddress$ = iCell.Address
Do
Set iCell = sh.UsedRange.FindNext(After:=iCell)
MsgBox sh.Name & "!" & iCell.Address
Loop While Not iCell Is Nothing And iCell.Address <> iAddress$
End If
Next

End Sub
xlWhole возможно нужно заменить на xlPart - "по вкусу"
Как потом вызвать эту процедуру не подскажите? Или прям в коде программы это писать?

Последний раз редактировалось Amirhan; 11.02.2014 в 12:59.
Amirhan вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создание поиска Aptem89 Microsoft Office Excel 3 19.01.2013 21:51
Создание поиска sid1868 БД в Delphi 6 21.10.2010 15:07
создание поиска Cone Microsoft Office Excel 5 05.08.2010 22:05
Создание словника по тексту annosinceva Фриланс 6 02.06.2010 01:49
Процедуры сортировки и поиска Иллидан Общие вопросы Delphi 4 19.04.2008 21:48