ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Find and Replace in VBA (https://www.excelbanter.com/excel-programming/438872-find-replace-vba.html)

septimus

Find and Replace in VBA
 
So I've got this code to perform a find-and-replace in an Excel
workbook:

Cells.Replace What:="This", Replacement:="That", _
LookAt:=xlPart, SearchOrder:=xlByColumns, _
MatchCase:=False, SearchFormat:=False,
ReplaceFormat:=False

Works fine, except that in order to have it perform the find-and-
replace on all worksheets in the workbook, I have to type CTRL-H and
change the "Within" property from "Sheet" to "Workbook". The next time
I open Excel, that property is automatically changed back to "Sheet."

Is there a way to set the "Within" property for find-and-replace in
VBA?

Thanks!


Rick Rothstein

Find and Replace in VBA
 
Assuming that line of code does what you want, just replace it with this
loop...

For Each WS In Worksheets
WS.Cells.Replace What:="This", Replacement:="That", _
LookAt:=xlPart, SearchOrder:=xlByColumns, _
MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
Next

and use this line of code to declare the WS variable...

Dim WS As Worksheet

The above loop will loop through each worksheet and run the Replace method
on their cells automatically.

--
Rick (MVP - Excel)


"septimus" wrote in message
...
So I've got this code to perform a find-and-replace in an Excel
workbook:

Cells.Replace What:="This", Replacement:="That", _
LookAt:=xlPart, SearchOrder:=xlByColumns, _
MatchCase:=False, SearchFormat:=False,
ReplaceFormat:=False

Works fine, except that in order to have it perform the find-and-
replace on all worksheets in the workbook, I have to type CTRL-H and
change the "Within" property from "Sheet" to "Workbook". The next time
I open Excel, that property is automatically changed back to "Sheet."

Is there a way to set the "Within" property for find-and-replace in
VBA?

Thanks!



Jacob Skaria

Find and Replace in VBA
 
Try the below which works for the entire workbook

Sub Macro()
Dim ws As Worksheet
For Each ws In Sheets
ws.Cells.Replace What:="This", Replacement:="That", _
LookAt:=xlPart, SearchOrder:=xlByColumns, _
MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
Next
End Sub

--
Jacob


"septimus" wrote:

So I've got this code to perform a find-and-replace in an Excel
workbook:

Cells.Replace What:="This", Replacement:="That", _
LookAt:=xlPart, SearchOrder:=xlByColumns, _
MatchCase:=False, SearchFormat:=False,
ReplaceFormat:=False

Works fine, except that in order to have it perform the find-and-
replace on all worksheets in the workbook, I have to type CTRL-H and
change the "Within" property from "Sheet" to "Workbook". The next time
I open Excel, that property is automatically changed back to "Sheet."

Is there a way to set the "Within" property for find-and-replace in
VBA?

Thanks!

.


septimus

Find and Replace in VBA
 
Thanks, guys. That worked beautifully -- for a while. Now all of a
sudden I run the code and it does nothing. I haven't changed it at all
since it worked.
Anybody have any ideas? Here's the code:

Sub UpdateVariableInfo()
'Update all text that changes from school to school.
Dim ws As Worksheet

'Loop through each worksheet and run a find-and-replace to update
all variable data.
For Each ws In Sheets

'Find and replace all instances of the school name
FindAndReplace ws, "This", "That"

Next

End Sub

Sub FindAndReplace(ws As Worksheet, strFrom As String, strTo As
String)
'Run a find and replace operation on the designated worksheet.

ws.Cells.Replace What:=strFrom, Replacement:=strTo, _
LookAt:=xlPart, SearchOrder:=xlByColumns, _
MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False

End Sub



On Jan 26, 10:45*pm, Jacob Skaria
wrote:
Try the below which works for the entire workbook

Sub Macro()
Dim ws As Worksheet
For Each ws In Sheets
ws.Cells.Replace What:="This", Replacement:="That", _
LookAt:=xlPart, SearchOrder:=xlByColumns, _
MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
Next
End Sub

--
Jacob

"septimus" wrote:
So I've got this code to perform a find-and-replace in an Excel
workbook:


* * * * Cells.Replace What:="This", Replacement:="That", _
* * * * * * * * LookAt:=xlPart, SearchOrder:=xlByColumns, _
* * * * * * * * MatchCase:=False, SearchFormat:=False,
ReplaceFormat:=False


Works fine, except that in order to have it perform the find-and-
replace on all worksheets in the workbook, I have to type CTRL-H and
change the "Within" property from "Sheet" to "Workbook". The next time
I open Excel, that property is automatically changed back to "Sheet."


Is there a way to set the "Within" property for find-and-replace in
VBA?


Thanks!


.




All times are GMT +1. The time now is 01:45 PM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com