Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.85/65: Рейтинг темы: голосов - 65, средняя оценка - 4.85
7 / 7 / 1
Регистрация: 20.05.2011
Сообщений: 53

Как осуществить поиск определенного слова в книге?

26.11.2011, 22:41. Показов 13851. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток, форумчане. Помогите мне пожалуйста написать небольшой код для кнопки формы.
Сразу скажу, что сегодня первый раз увидел vba. До этого писал только на паскале, пхп и скьюле) Язык сложно понимаю. Я написал форму, по которой создаются 4 текстовых поля, значения которых потом сохраняются в переменные. Мне нужно, чтобы по нажатия клавиши был произведен поиск значения одной переменной в книге1. Чем проще будет написано тему лучше.
Задача очень простая. Я видел кучу решений, но не смог понять ни одного.
Заранее спасибо.
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
26.11.2011, 22:41
Ответы с готовыми решениями:

Как осуществить поиск по всей книге (по всем листам сразу)?
Очень нужно!

Как осуществить в строковом массиве поиск именно слова, а не части слова?
как осуществить в строковом массиве поиск именно слова(!), а не части слова. Допустим, есть строка: "this is horosho" Если я...

Поиск определенного слова в строке и замена определенного символа после этого слова
Представим что у нас есть следующая строка: "Дядя Петя 10 раз ударил дядю Васю, но дядя Вася оказался не трусом и дал сдачи в виде 1...

9
1705 / 574 / 74
Регистрация: 10.04.2009
Сообщений: 9,283
27.11.2011, 09:39
Эксель?
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
для затравки
With ActiveDocument.Range.Find 'вместо этого это: Worksheets("Лист1").Range("b3:f11") 
 
    .Text = "<" & Первое_слово & "," 'поиск в начале слова
    .Wrap = wdFindStop 'поиск остановить, остановит поиск по достижении конца
    .MatchWildcards = True 'эта опция отвечает за поиск с использованием подстановочных знаков, не работает когда установлено в положение False, или её нет вообще, если установлена в положение True, тогда работает
    Счётчик = 0
    Do While .Execute = True
     'выделит искомые слова
    .Parent.Select
    Искомое = Selection.Text
     'или
    Искомое = .Parent
    Счётчик = Счётчик + 1
    Loop
End With
что не понятно, спрашивайте мне как раз помощь по пхп нужна
0
27.11.2011, 10:57

Не по теме:

Цитата Сообщение от Ципихович Эндрю Посмотреть сообщение
спрашивайте мне как раз помощь по пхп нужна
Звучит как анекдот.

2
здесь больше нет...
3376 / 1674 / 184
Регистрация: 03.02.2010
Сообщений: 1,219
27.11.2011, 11:18
Лучший ответ Сообщение было отмечено как решение

Решение

Цитата Сообщение от Ципихович Эндрю Посмотреть сообщение
Эксель?
писал бы весь диалог:
"Нет"
"Вот вам код для Word"

Не по теме:

Цитата Сообщение от Ципихович Эндрю Посмотреть сообщение
что не понятно, спрашивайте мне как раз помощь по пхп нужна
комедия абсурда

3
7 / 7 / 1
Регистрация: 20.05.2011
Сообщений: 53
27.11.2011, 12:13  [ТС]
Огромное спасибо вам!
Буду разбираться. А то вся форма работает, а одна кнопка по поиску нет, ибо не знаю как его сделать в vba
0
 Аватар для Апострофф
9908 / 3919 / 742
Регистрация: 11.10.2011
Сообщений: 5,902
27.11.2011, 12:38
Цитата Сообщение от VasiliyST Посмотреть сообщение
поиск значения одной переменной в книге1
Предполагаю, но не утверждаю, что речь идет об Excel? VasiliyST, проясни вопрос!
Цитата Сообщение от F2
Function Find(What, [After], [LookIn], [LookAt], [SearchOrder], [SearchDirection As XlSearchDirection = xlNext], [MatchCase], [MatchByte], [SearchFormat]) As Range
Member of Excel.Range
Цитата Сообщение от Ципихович Эндрю Посмотреть сообщение
вместо этого это: Worksheets("Лист1").Range("b3:f11")
.Text = "<" & Первое_слово & "," 'поиск в начале слова
.Wrap = wdFindStop 'поиск остановить, остановит поиск по достижении конца
.MatchWildcards = True
Эндрю, ни одного совпадения в параметрах...
1
здесь больше нет...
3376 / 1674 / 184
Регистрация: 03.02.2010
Сообщений: 1,219
27.11.2011, 12:54
wdFindStop - вот это особенно в Excel'е на ура работает

этот пример можно переделать под свои нужды, если чутка подумать
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
Sub ПоискСвязей()
    Dim Sht As Worksheet
    Dim rng As Range, cell As Range
    Dim msg$, FirstAddress$
 
    On Error Resume Next
    For Each Sht In ActiveWorkbook.Worksheets
 
        Set rng = Sht.Range("A1").SpecialCells(xlCellTypeFormulas)
        Set cell = rng.Find(What:="[", _
                            LookIn:=xlFormulas, _
                            LookAt:=xlPart, _
                            SearchDirection:=xlNext)
 
        If Not cell Is Nothing Then
            FirstAddress = cell.Address
            Do
                msg = msg & Sht.Name & vbTab & cell.Address(False, False) & vbNewLine
                Set cell = rng.FindNext(cell)
            Loop While Not cell Is Nothing And cell.Address <> FirstAddress
        End If
 
        Set cell = Nothing
        Set rng = Nothing
    Next Sht
    MsgBox msg
End Sub
2
27.11.2011, 13:02

Не по теме:

видимо по этому я Эксель не люблю :)

0
27.11.2011, 14:46

Не по теме:

Цитата Сообщение от Ципихович Эндрю Посмотреть сообщение
видимо по этому я Эксель не люблю
Или он тебя?:D

0
7 / 7 / 1
Регистрация: 20.05.2011
Сообщений: 53
28.11.2011, 22:41  [ТС]
Сорри, что сразу не отписался. Да, речь об экселе, о нем и думал когда писал "поиск в книге".
Не по теме:
видимо по этому я Эксель не люблю
И я. Вроде и много классных вещей можно делать, а неуютно в нем.
Реализацию поиска сделал очень просто. Может таким же начинающим в VBA будет очень полезно.
Делаем запись макроса, жмем Ctrl + F, вводим любое искомое (например "текст") и жмем искать далее. После этого останавливаем запись. Жмем Alt + F11 и в списке макросов находим свежезаписанный. В нем должен содержаться код
Visual Basic
1
2
3
4
5
Cells.Find(What:="текст", After:=ActiveCell, LookIn:=xlFormulas, LookAt _
        :=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
        False, SearchFormat:=False).Activate
    Rows("23:23").Select
    Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
Меняем в этом коде "текст" на нужное и радуемся жизни. Например, в моем конкретном случае вышло вот что:
Visual Basic
1
2
3
Cells.Find(What:=ComboBox1.Text, After:=ActiveCell, LookIn:=xlFormulas, _
        LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
        MatchCase:=False, SearchFormat:=False).Activate
Собственно, работает отлично и тсроку из Комбобокса находит на ура! А мне лишь это и надо было.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
28.11.2011, 22:41
Помогаю со студенческими работами здесь

Как организовать поиск в другой книге или в этой же книге, поиск по слову на определенных листах
Всем привет!) Как организовать поиск в другой книге или в этой же книге, поиск по слову на определенных листах? Например слово...

Как реализовать многопоточный поиск определенного слова по ссылкам на сайты?
Подскажите как реализовать многопоточный поиск по ссылкам определенного слова? Так понимаю надо делать шттп запрос на сайт и искать...

Как сделать поиск определенного слова по базе и вывести все данные в TextBox?
Как сделать поиск определенного слова (допустим возьмем из текстбокса) по базе и вывести все данные в текстбокс. Т.е. если ищем слово...

Как осуществить в дельфи осуществить поиск по таблице из другой формы?
Очень выручите, плизз

Поиск определенного слова
Помогите решить задачку Имеется текст, нужно искать названия дней недели и выводить их на экран. Например: в понедельник у меня две...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru