Страницы: 1
RSS
Замена текста с изминения цвета шрифта.
 
Мне нужно что бы при замене изменялса и цвет замененого текста(цифры, сиволы).  
   
Sheets("practice").Cells.Replace What:=Sheets("base").Range("A" & X), Replacement:=Sheets _  
         ("base").Range("B" & X)с заменой цвета шрифта, LookAt:=xlPart
 
Макрорекодер не помог?
 
Макрорекодер записывает после функции замены это:  
   ActiveWindow.SmallScroll Down:=177  
   ActiveWindow.ScrollRow = 671  
   ActiveWindow.ScrollRow = 667  
   ActiveWindow.ScrollRow = 663  
   ActiveWindow.ScrollRow = 658  
   ActiveWindow.ScrollRow = 645  
   ActiveWindow.ScrollRow = 612  
   и далее ......  
Но не немогу разобратся в них, если знаете обясните.
 
Владимир,  
я попробовал в 2007 замену с указанием формата - цвет меняется у ячейки целиком.  
А тут надо менять цвет только у замененных символов, как я понял.
 
Вот что он мне выдал:  
 
Sub Ìàêðîñ1()  
'  
' Ìàêðîñ1 Ìàêðîñ  
'  
 
'  
   Range("D6").Select  
   ActiveCell.FormulaR1C1 = "lnlnltrttrtretetetelnlnln"  
   With ActiveCell.Characters(Start:=1, Length:=9).Font  
       .Name = "Calibri"  
       .FontStyle = "îáû÷íûé"  
       .Size = 11  
       .Strikethrough = False  
       .Superscript = False  
       .Subscript = False  
       .OutlineFont = False  
       .Shadow = False  
       .Underline = xlUnderlineStyleNone  
       .ThemeColor = xlThemeColorLight1  
       .TintAndShade = 0  
       .ThemeFont = xlThemeFontMinor  
   End With  
   With ActiveCell.Characters(Start:=10, Length:=10).Font  
       .Name = "Calibri"  
       .FontStyle = "îáû÷íûé"  
       .Size = 11  
       .Strikethrough = False  
       .Superscript = False  
       .Subscript = False  
       .OutlineFont = False  
       .Shadow = False  
       .Underline = xlUnderlineStyleNone  
       .Color = -16776961  
       .TintAndShade = 0  
       .ThemeFont = xlThemeFontMinor  
   End With  
   With ActiveCell.Characters(Start:=20, Length:=6).Font  
       .Name = "Calibri"  
       .FontStyle = "îáû÷íûé"  
       .Size = 11  
       .Strikethrough = False  
       .Superscript = False  
       .Subscript = False  
       .OutlineFont = False  
       .Shadow = False  
       .Underline = xlUnderlineStyleNone  
       .ThemeColor = xlThemeColorLight1  
       .TintAndShade = 0  
       .ThemeFont = xlThemeFontMinor  
   End With  
   Range("D7").Select  
End Sub  
 
Убрать все лишнее и будет работать.  
Для ТС    
 
Строку лучше переписывать целиком в переменную, вычислять начало и конец заменяемого фрагмента функцией Instr(), заменять фрагмент функцией Replace(), сохранять в ячейку и красить, как это делает макрорекодер.
 
Поспешил с копированием:  
Sub Макрос1()  
'  
' Макрос1 Макрос  
'  
 
'  
   Range("D6").Select  
   ActiveCell.FormulaR1C1 = "lnlnltrttrtretetetelnlnln"  
   With ActiveCell.Characters(Start:=1, Length:=9).Font  
       .Name = "Calibri"  
       .FontStyle = "обычный"  
       .Size = 11  
       .Strikethrough = False  
       .Superscript = False  
       .Subscript = False  
       .OutlineFont = False  
       .Shadow = False  
       .Underline = xlUnderlineStyleNone  
       .ThemeColor = xlThemeColorLight1  
       .TintAndShade = 0  
       .ThemeFont = xlThemeFontMinor  
   End With  
   With ActiveCell.Characters(Start:=10, Length:=10).Font  
       .Name = "Calibri"  
       .FontStyle = "обычный"  
       .Size = 11  
       .Strikethrough = False  
       .Superscript = False  
       .Subscript = False  
       .OutlineFont = False  
       .Shadow = False  
       .Underline = xlUnderlineStyleNone  
       .Color = -16776961  
       .TintAndShade = 0  
       .ThemeFont = xlThemeFontMinor  
   End With  
   With ActiveCell.Characters(Start:=20, Length:=6).Font  
       .Name = "Calibri"  
       .FontStyle = "обычный"  
       .Size = 11  
       .Strikethrough = False  
       .Superscript = False  
       .Subscript = False  
       .OutlineFont = False  
       .Shadow = False  
       .Underline = xlUnderlineStyleNone  
       .ThemeColor = xlThemeColorLight1  
       .TintAndShade = 0  
       .ThemeFont = xlThemeFontMinor  
   End With  
   Range("D7").Select  
End Sub
 
Как вариант махонький макрос, см. файл
Редко но метко ...
 
То же самое с использованием Функции InStr
Редко но метко ...
Страницы: 1
Читают тему
Наверх