Home |
Search |
Today's Posts |
#1
Posted to microsoft.public.excel.misc
|
|||
|
|||
Find and Replace
How do you replace a word with the same word except I want to change the
Fonts of only one word in a cell? Then continue to change only that one word in 159 cells? |
#2
Posted to microsoft.public.excel.misc
|
|||
|
|||
Find and Replace
This is not built into excel.
But you can use a macro: Saved from a previous post: Option Explicit Option Compare Text Sub testme() Application.ScreenUpdating = False Dim myWords As Variant Dim myRng As Range Dim foundCell As Range Dim iCtr As Long 'word counter Dim cCtr As Long 'character counter Dim FirstAddress As String Dim AllFoundCells As Range Dim myCell As Range 'add other words here myWords = Array("widgets", "assemblies", "another", "word", "here") Set myRng = Selection 'Select the range to fix first! On Error Resume Next Set myRng = Intersect(myRng, _ myRng.Cells.SpecialCells(xlCellTypeConstants, xlTextValues)) On Error GoTo 0 If myRng Is Nothing Then MsgBox "Please choose a range that contains text constants!" Exit Sub End If For iCtr = LBound(myWords) To UBound(myWords) FirstAddress = "" Set foundCell = Nothing With myRng Set foundCell = .Find(what:=myWords(iCtr), _ LookIn:=xlValues, lookat:=xlPart, _ after:=.Cells(1)) If foundCell Is Nothing Then MsgBox myWords(iCtr) & " wasn't found!" Else Set AllFoundCells = foundCell FirstAddress = foundCell.Address Do If AllFoundCells Is Nothing Then Set AllFoundCells = foundCell Else Set AllFoundCells = Union(foundCell, AllFoundCells) End If Set foundCell = .FindNext(foundCell) Loop While Not foundCell Is Nothing _ And foundCell.Address < FirstAddress End If End With If AllFoundCells Is Nothing Then 'do nothing Else For Each myCell In AllFoundCells.Cells For cCtr = 1 To Len(myCell.Value) If Mid(myCell.Value, cCtr, Len(myWords(iCtr))) _ = myWords(iCtr) Then With myCell.Characters(Start:=cCtr, _ Length:=Len(myWords(iCtr))) .Font.ColorIndex = 3 .Font.Bold = True End With End If Next cCtr Next myCell End If Next iCtr Application.ScreenUpdating = True End Sub This portion: With myCell.Characters(Start:=cCtr, _ Length:=Len(myWords(iCtr))) .Font.ColorIndex = 3 .Font.Bold = True End With Changes the color and the boldness. It doesn't do what you want, but maybe you can flesh it out. Record a macro that looks for subscript (to get the syntax correct). That code will replace the .find line based on words. Then instead of looking through the characters looking for a string, you'll have to look for the subscript. lostsoul62 wrote: How do you replace a word with the same word except I want to change the Fonts of only one word in a cell? Then continue to change only that one word in 159 cells? -- Dave Peterson |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
Similar Threads | ||||
Thread | Forum | |||
Find & Replace: find part cell, replace whole cell | Excel Worksheet Functions | |||
Find and Replace - Replace with Blank Space | Excel Discussion (Misc queries) | |||
where to put results of find operation in find and replace functio | Excel Worksheet Functions | |||
find and replace - replace data in rows to separated by commas | Excel Worksheet Functions | |||
find replace cursor default to find box | Excel Discussion (Misc queries) |