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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.06.2011, 17:56   #11
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,170
По умолчанию

Хотя вот вроде получилось "попаразитировать" - 100% кода Николая плюс от меня чуть

Код:
Sub ertert()
Dim bibl, b, poisk As Range, r As Range, s As String
Application.ScreenUpdating = False

bibl = Range([e2], Cells(Rows.Count, 5).End(xlUp)).Value
Set poisk = Range([a2], Cells(Rows.Count, 1).End(xlUp))
poisk.Font.ColorIndex = xlAutomatic

For Each r In poisk.Cells
x = Split(r.Text)
For Each xx In x
    For Each b In bibl
    If xx = b Then
         s = InStr(r, b)
        If s Then r.Characters(s, Len(b)).Font.Color = vbRed
    End If
    Next b
Next xx
Next r
Application.ScreenUpdating = True
End Sub
Ну или тогда процент Николая можно чуть уменьшить (теперь лишнее выкинуть):
Код:
Option Explicit

Sub ertert()
Dim bibl, b, poisk As Range, r As Range, s As String
Dim x, xx$
Application.ScreenUpdating = False

bibl = Range([e2], Cells(Rows.Count, 5).End(xlUp)).Value
Set poisk = Range([a2], Cells(Rows.Count, 1).End(xlUp))
poisk.Font.ColorIndex = xlAutomatic

For Each r In poisk.Cells
x = Split(r.Text)
For Each xx In x
    For Each b In bibl
    If xx = b Then r.Characters(InStr(r, b), Len(b)).Font.Color = vbRed
    Next b
Next xx
Next r
Application.ScreenUpdating = True
End Sub
webmoney: E265281470651 Z422237915069 R418926282008

Последний раз редактировалось Hugo121; 21.06.2011 в 18:00.
Hugo121 вне форума Ответить с цитированием
Старый 21.06.2011, 18:17   #12
nilem
Форумчанин
 
Регистрация: 25.04.2010
Сообщений: 616
По умолчанию

Тоже начал было так делать. А если там еще точки, запятые, дефисы и пр.? И искомые слова в предложении повторяются?
Dim x, xx$ надо Variant, процент просьба увеличить
nilem вне форума Ответить с цитированием
Старый 21.06.2011, 18:27   #13
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,170
По умолчанию

Ну я думал, раз сплитим текст, то элемент массива - тоже текст... Ну да ладно, вариант беспроигрышный вариант
Да, точки/дефисы считать как часть слова, т.е. "фф"="фф-" или нет?
Если равно, то может просто тупо заменить их все на пробелы?
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 21.06.2011, 20:56   #14
nilem
Форумчанин
 
Регистрация: 25.04.2010
Сообщений: 616
По умолчанию

Без рег. выражений, видимо, никак.
Вот вариант, на больших диапазонах будет тормозить - слишком уж "поячеешно":
Код:
Sub ertert()
Dim bibl As Range, b As Range, poisk As Range, r As Range
Dim i As Long, l As Long: Application.ScreenUpdating = False

Set bibl = Range([e2], Cells(Rows.Count, 5).End(xlUp))
Set poisk = Range([a2], Cells(Rows.Count, 1).End(xlUp))
poisk.Font.ColorIndex = xlAutomatic: bibl.Font.ColorIndex = xlAutomatic

With CreateObject("VBScript.RegExp")
    .Global = True: .IgnoreCase = True
    For Each b In bibl.Cells
        .Pattern = "(^|\s)" & b & "[^а-я]+": l = Len(b)
        For Each r In poisk.Cells
            If .Test(r) Then
                b.Font.Color = vbBlue
                With .Execute(r)
                    For i = 0 To .Count - 1
                        r.Characters(.Item(i).FirstIndex + 1, l + 1).Font.Color = vbRed
                    Next
                End With
            End If
        Next r
    Next b
End With: Application.ScreenUpdating = True
End Sub
Вложения
Тип файла: zip Search_in_Column.zip (15.5 Кб, 12 просмотров)
nilem вне форума Ответить с цитированием
Старый 21.06.2011, 22:08   #15
Bape}l{ka
Форумчанин
 
Аватар для Bape}l{ka
 
Регистрация: 25.05.2011
Сообщений: 249
По умолчанию

оо, спасибо, я тоже заменила все лишнее на пробелы, сча буду разбираться с этим кодом)))
Bape}l{ka вне форума Ответить с цитированием
Старый 01.07.2011, 14:07   #16
Bape}l{ka
Форумчанин
 
Аватар для Bape}l{ka
 
Регистрация: 25.05.2011
Сообщений: 249
По умолчанию

вариант от nilem тоже ищет только частичные совпадения
Bape}l{ka вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск в справочнике макросом sasha_prof Microsoft Office Excel 9 25.03.2011 12:22
открытие нескольких книг одним макросом и закрытие книг другим макросом kursant95 Microsoft Office Excel 6 27.01.2011 16:54
поиск не заблокированных ячеек макросом NoLL Microsoft Office Excel 4 24.12.2010 06:23
поиск макросом дубликатов в таблице эксель brokoli Microsoft Office Excel 12 20.01.2009 11:26