![]() |
Find and Replace formatting formats the ENTIRE cell
How do you use the Find and Replace feature that finds a particular word from
within a cell, in this case "(box)." I want to bold just that text and not the entire cell. When trying to do so, it formats the entire cell and not just the text I want. Excel 2003. Anyone? |
Find and Replace formatting formats the ENTIRE cell
Does anyone know if I need to create a macro for this? If so, how do I? I
have never done any programming in Excel before. "Duy Nguyen" wrote: How do you use the Find and Replace feature that finds a particular word from within a cell, in this case "(box)." I want to bold just that text and not the entire cell. When trying to do so, it formats the entire cell and not just the text I want. Excel 2003. Anyone? |
Find and Replace formatting formats the ENTIRE cell
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 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(.Cells.Count)) 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 If you're new to macros, you may want to read David McRitchie's intro at: http://www.mvps.org/dmcritchie/excel/getstarted.htm 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. You may want to save first--so you can close without saving if you don't want to keep the formatting changes. Remember this kind of formatting only works on text cells--not formulas--not numbers. Duy Nguyen wrote: Does anyone know if I need to create a macro for this? If so, how do I? I have never done any programming in Excel before. "Duy Nguyen" wrote: How do you use the Find and Replace feature that finds a particular word from within a cell, in this case "(box)." I want to bold just that text and not the entire cell. When trying to do so, it formats the entire cell and not just the text I want. Excel 2003. Anyone? -- Dave Peterson |
All times are GMT +1. The time now is 02:02 AM. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com