Страницы: 1
RSS
Макрос для покраски слов (УФ не умеет)
 
Приветствую форум.
И опять добрался к условному форматированию.
И опять задача разрисовать(разными цветами) текст в ячейке A1 если он есть в ячейках B1 - F1
Напимер:
A1 = Применение условного форматирования на основе текста в ячейке

B1 = Применение
C1 = условного
D1 = форматирования
E1 = на основе текста в
F1 = ячейке

A2 = Применение1 условного1 форматирования1 на основе текста в1 ячейке1

B2 = Применение1
C2 = условного1
D2 = форматирования1
E2 = на основе текста в1
F2 = ячейке1
ну и тд.
Каждый применяется для своих строк,
то есть если у меня строка A3 будет совпадать с А1, то ячейки для рисовалки берутся с B3-F3
A3 = Применение условного форматирования на основе текста в ячейке

B3 = Применение
C3 = условного
D3 = форматирования
E3 = на основе текста в
F3 = ячейке

Возможно ли такое?
В статье любимого офиса написано как, но ри этом выделяется вся ячейка.
http://office.microsoft.com/ru-ru/excel-help/HA102809699.aspx

Или выделять не шрифт а слово
Изменено: Kreol2013 - 02.04.2013 17:35:01
 
УФ не умеет форматировать часть текста, оно только всю ячейку форматирует.
Учимся сами и помогаем другим...
 
ну только макросом остается.
Учимся сами и помогаем другим...
 
Закрашивает все буквы ячейки красным цветом.
Код
Sub ColorizeLetters()

    Dim i As Long
    
    With ActiveCell
        For i = 0 To .Characters.Count
            .Characters(i, 1).Font.Color = RGB(255, 0, 0)
        Next
    End With
    
End Sub
Изменено: Johny - 25.03.2013 15:49:55
There is no knowledge that is not power
 
Johny, автору нужно не всю строку, а часть ))
Kreol2013, запишите рекордером "покраску" части текста (в строке формул) - получите рыбу для макроса.
 
Для ячейки А1

Код
Option Explicit

Sub ColorSlovo()
Dim BeginSlovo As Integer
Cells(1, 1).Font.ColorIndex = 1
BeginSlovo = InStr(1, Range("A1"), Range("B1"), 1)
With Cells(1, 1)
    .Characters(BeginSlovo, Len(Range("B1"))).Font.ColorIndex = 4
    BeginSlovo = InStr(1, Range("A1"), Range("C1"), 1)
    .Characters(BeginSlovo, Len(Range("C1"))).Font.ColorIndex = 5
    BeginSlovo = InStr(1, Range("A1"), Range("D1"), 1)
    .Characters(BeginSlovo, Len(Range("D1"))).Font.ColorIndex = 13
    BeginSlovo = InStr(1, Range("A1"), Range("E1"), 1)
    .Characters(BeginSlovo, Len(Range("E1"))).Font.ColorIndex = 3
    BeginSlovo = InStr(1, Range("A1"), Range("F1"), 1)
    .Characters(BeginSlovo, Len(Range("F1"))).Font.ColorIndex = 14
End With
End Sub



Цикл по столбцу А сделайте сами. Цвета выберите какие нужно.
 
Следует учитывать, что при обращении к объекту Characters из VBA нет возможности корректно обработать строки, длина которых превышает 255 символов.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Добавлять нельзя, форматировать можно: http://www.sql.ru/forum/actualthread.aspx?tid=997024
Страницы: 1
Наверх