![]() |
Search and Replace
Say if I want to do a search and replace: for example "Marriages -
Public License" and I want to replace the word "Marriages" with the same word only in red and bold, can I do it without the whole thing being red and bold? I tried to do it but the whole thing turns red and bold and I only want the one word changed. Since there are many instances of this, I need to find a way to do this by search and replace. Any ideas on how I can do that? I have tried the conditional formatting but it doesn't format the one word unless it is by itself in the cell. Any suggestions? Thanks |
Search and Replace
It is possible to do this with VBA, but it is much easier to just paste then
cells into a Word Table, use Word to change the font and then paste back into Excel. -- Gary's Student "LymaBeane" wrote: Say if I want to do a search and replace: for example "Marriages - Public License" and I want to replace the word "Marriages" with the same word only in red and bold, can I do it without the whole thing being red and bold? I tried to do it but the whole thing turns red and bold and I only want the one word changed. Since there are many instances of this, I need to find a way to do this by search and replace. Any ideas on how I can do that? I have tried the conditional formatting but it doesn't format the one word unless it is by itself in the cell. Any suggestions? Thanks |
Search and Replace
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. ======== You'll want to change this line: myWords = Array("widgets", "assemblies", "another", "word", "here") to myWords = Array("Marriages") (maybe include other words???) LymaBeane wrote: Say if I want to do a search and replace: for example "Marriages - Public License" and I want to replace the word "Marriages" with the same word only in red and bold, can I do it without the whole thing being red and bold? I tried to do it but the whole thing turns red and bold and I only want the one word changed. Since there are many instances of this, I need to find a way to do this by search and replace. Any ideas on how I can do that? I have tried the conditional formatting but it doesn't format the one word unless it is by itself in the cell. Any suggestions? Thanks -- Dave Peterson |
All times are GMT +1. The time now is 11:17 AM. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com