+ Ответить в теме
Показано с 1 по 8 из 8

Тема: Выделение некоторых слов в тексте в ячейке Exel

  1. #1
    coder kostero is on a distinguished road
    Регистрация
    24.01.2007
    Возраст
    59
    Сообщений
    14
    Вес репутации
    13

    По умолчанию Выделение некоторых слов в тексте в ячейке Exel

    Всем привет.

    Кто подскажет. Следующая ситуация. В ячейках в Exel есть некоторый текст и в них есть повторяющие слова (характерные), в каждой ячейке. Хотелось бы каким то образом выделить эти слова полужирным шрифтом и другим цветом.
    С помощью замены не получается.

  2. По умолчанию

     
    Хотите избавиться от рекламы? Зарегистрируйтесь
  3. #2
    Moderator Куратор
    system architect
    Хыиуду has a spectacular aura about Хыиуду has a spectacular aura about
    Регистрация
    06.03.2005
    Адрес
    Москва
    Сообщений
    2,388
    Вес репутации
    19

    По умолчанию Re: Выделение некоторых слов в тексте в ячейке Exel

    имеется в виду, что есть несколько ячеек с одинаковым текстом? Если да, то как определяется "характерность" ячеек?
    Искусство программирования - заставить компьютер делать все то, что вам делать лень.
    Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.

  4. #3
    coder kostero is on a distinguished road
    Регистрация
    24.01.2007
    Возраст
    59
    Сообщений
    14
    Вес репутации
    13

    По умолчанию Re: Выделение некоторых слов в тексте в ячейке Exel

    Нет текст в ячейках разный (допустим объявления) но в них есть характерные слова, которые и нужно выделить. Таких ячеек достаточно много и в ручную выделять это достаточно конительно.

  5. #4
    Moderator Куратор
    system architect
    Хыиуду has a spectacular aura about Хыиуду has a spectacular aura about
    Регистрация
    06.03.2005
    Адрес
    Москва
    Сообщений
    2,388
    Вес репутации
    19

    По умолчанию Re: Выделение некоторых слов в тексте в ячейке Exel

    Тогда, думаю, макрос надо писать на Vba. И будет он делать примерно следующее:
    1. В каждой ячейке столбца текст разбивать на слова
    2. Подсчитывать, сколько раз встретилось то или иное слово.
    3. Если этот счетчик заедет за какую-то величину - это слово можно считать "характерным", стало быть, выделяем его жирным
    Искусство программирования - заставить компьютер делать все то, что вам делать лень.
    Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.

  6. #5
    system architect Aent will become famous soon enough Аватар для Aent
    Регистрация
    01.10.2006
    Адрес
    Saratov,Russia
    Возраст
    58
    Сообщений
    1,108
    Вес репутации
    15

    По умолчанию Re: Выделение некоторых слов в тексте в ячейке Exel

    Смежный вопрос. А можно ли как нибудь изменить выделение части ячейки с помощью функций рабочего листа ?
    Пробовал =ТЕКСТ(4;"[Красный]00") & ТЕКСТ(4;"[Синий]00")
    Не меняет цвет

  7. #6
    system architect pashulka will become famous soon enough pashulka will become famous soon enough
    Регистрация
    24.11.2004
    Возраст
    77
    Сообщений
    831
    Вес репутации
    17

    По умолчанию Re: Выделение некоторых слов в тексте в ячейке Exel

    Kostero, Попробуйте использовать что-то вроде :

    Код :
    1. Private Sub ChangeFormating() 'MS Excel 2000, …
    2.  
    3. Application.ScreenUpdating = False
    4.  
    5. For Each iWord In Split("текст;формула;константа", ";")
    6.     With ThisWorkbook.Worksheets(1)
    7.          'укажите свою книгу/лист, лист не должен быть защищён (2000), т.к.
    8.          'возможность изменения параметров форматирования нижеуказанным
    9.          'способом появилась только в MS Excel XP
    10.          '(при установке опции разрешить форматирование ячеек)
    11.          Dim iCell As Range
    12.          Set iCell = .UsedRange.Find _
    13.          (What:=iWord, LookIn:=xlValues, LookAt:=xlPart)
    14.          If Not iCell Is Nothing Then
    15.             iAddress$ = iCell.Address
    16.             Do
    17.                If Not iCell.HasFormula Then
    18.                   iPosition% = InStr(iCell.Value, iWord)
    19.                   'если существует вероятность, что одно слово
    20.                   'может встречаться в ячейке более одного раза
    21.                   'то это необходимо учесть
    22.                   With iCell.Characters _
    23.                   (Start:=iPosition%, Length:=Len(iWord))
    24.                        .Font.Bold = True
    25.                        .Font.Color = vbRed
    26.                   End With
    27.                End If
    28.                Set iCell = .UsedRange.FindNext(After:=iCell)
    29.             Loop While Not iCell Is Nothing And iCell.Address <> iAddress$
    30.          End If
    31.     End With
    32. Next
    33.  
    34. Application.ScreenUpdating = True
    35.  
    36. End Sub

    Кстати, если заменить Split("текст;формула;констант ", ";") на Array("текст", "формула", "константа") то вышеопубликованный вариант можно использовать в более ранних версиях. Однако, применение функции Split позволяет задавать список нужных слов в виде строки.

    Aent, Стандартные функции рабочего листа не меняют параметры форматирования.
    Последний раз редактировалось pashulka; 30.01.2007 в 23:56.

  8. #7
    coder kostero is on a distinguished road
    Регистрация
    24.01.2007
    Возраст
    59
    Сообщений
    14
    Вес репутации
    13

    По умолчанию Re: Выделение некоторых слов в тексте в ячейке Exel

    pashulka. Спасибо програмка работает. Я сейчас погоняю ее немного по своим формативным запросам. Пока все хорошо.

  9. #8
    coder kostero is on a distinguished road
    Регистрация
    24.01.2007
    Возраст
    59
    Сообщений
    14
    Вес репутации
    13

    По умолчанию Re: Выделение некоторых слов в тексте в ячейке Exel

    pashulka.
    Kostero беспокоит в принципе программка рабочая, вполне удовлетворяет. Есть маленький формальный недос-таток при выполнении этого макроса появляется окошко ошибка 91 (object variable or with block variable not set). Не-сколько раз ее игнорируем через Dedug и она работает. Как можно от этого избавиться. И еще вопрос. Можно ли вы-делить сразу несколько слов в тексе (в ячейке) находящиеся не рядышком. (Если это возможно)
    Пример
    Мерседес-Бенц-S500, 2000 г. в., двиг. 5.0, пробег 176 тыс. км (S500 и пробег)

    И еще (я не программист только постепенно начинаю этим интересоваться), что нужно дописать перед этим макросом (public и другое, что то), что бы она была всегда занесена в макросы.

+ Ответить в теме

Похожие темы

  1. Поиск сказуемого в тексте
    Скажите, по какому признаку я должен отделять сказуемые от других частей речи?
    от Тузякин в разделе Delphi и Pascal
  2. Курсор в тексте
    У меня вот какой вопросик. Как можно управлять курсором в текством файле? Я пытаюсь сделать консольное приложение и мне допустим нужно сразу открыв...
    от pashtet в разделе C и C++
  3. Графика в тексте
    Здравствуйте. У меня трабла. 1) Пишу текстовый редактор с возможностью вставки графики. Все бы хорошо... но вот когда я RichEdit делаю Parent'ом...
    от Dungeon в разделе Delphi и Pascal
  4. Отделить руские слова от английских слов
    Как отделить в ячейке руские от английских слов
    от Кесарь в разделе MS Office и VB(A).
  5. :?: Сравнение слов
    Я так понимаю проблема должна быть распостраненной. Нужно сравнить два слова... Т.е. два созвучных слова(в моем случае это Фамилии) Например... ...
    от Hup в разделе C и C++

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения