Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Как написать макрос???

9.8K
05 июля 2005 года
svyatoslav
9 / / 05.07.2005
Как написать макрос поиска слова?
На данный момент у меня прописан примитивный макрос поиска.

Worksheets("itogi").Activate
Range("A2:BA6").Select
Selection.Find(What:="otgrujeno", After:=ActiveCell, LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:= _
False).Select
Sheets("sup").Cells(80, 2).Value = Selection.Column

Если слово не находится, то макрос сообщает ошибку и приходится его снова перезапускать, чтобы искать другое. Наверняка есть другой путь, чтобы выводилось сообщение, что слово не найдено, "Хотите ли Вы начать поиск следующего слова" Да, Нет и т.д. Но я нигде не могу найти, как это сделать. Если кто знает подскажите.
405
05 июля 2005 года
Dmitrii
554 / / 16.12.2004
Цитата:
Originally posted by svyatoslav
Как написать макрос поиска слова? ... Если слово не находится, то макрос сообщает ошибку и приходится его снова перезапускать, чтобы искать другое. Наверняка есть другой путь, чтобы выводилось сообщение, что слово не найдено, "Хотите ли Вы начать поиск следующего слова" Да, Нет и т.д. Но я нигде не могу найти, как это сделать. Если кто знает подскажите.


Что касается анализа успешности поиска, то попробуйте вот такой пример:

Код:
Worksheets("itogi").Activate
Range("A2:BA6").Select
With Selection
Set c = .Find(What:="otgrujeno", After:=ActiveCell, _
LookIn:=xlFormulas, LookAt:=xlPart, _
SearchOrder:=xlByColumns, SearchDirection:=xlNext, _
MatchCase:=False)
If Not c Is Nothing Then
    Sheets(2).Cells(8, 2).Value = Selection.Column
Else
    MsgBox "Ничего не найдено"
End If
End With

Для повторения поиска этого же слова используйте в цикле метод FindNext (готовый пример есть в справке).
Что же касается диалога типа "Хотите ли искать дальше" к тому же с запросом другого искомого слова, то это надо писать самому (с использованием формы или InputBox, например).
275
05 июля 2005 года
pashulka
985 / / 19.09.2004
Для того, чтобы осуществить поиск в ячейках неактивного рабочего листа его вовсе не обязательно делать активным, тоже самое касается и диапазона ячеек, в котором Вы собираетесь искать нужную информацию

 
Код:
With Worksheets("itogi").Range("A2:BA6")

Set sFind = .Find(What:="Текст", LookIn:=xlValues, LookAt:=xlPart)

MsgBox IIf(sFind Is Nothing, "No", "Yes"), , ""

End With


Обратите внимание на именованный аргумент LookAt, если его значение указано как xlPart, то в таком случае, при поиске текста "Иван", данная функция найдёт "Иванов" Для более точного поиска необходимо использовать LookAt:=xlWhole
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог