VB Find and Replace

  • Thread starter Thread starter Bony_Pony
  • Start date Start date
B

Bony_Pony

Hi all,
If I record a macro that does a find / replace on a sheet
and then record another one that does a Find / Replace on
the entire workbook, they are identical!!

How can I code a Find / Replace statement that will
always perform on all sheets in my workbook?

e.g.
This is the one for the sheet:
Application.FindFormat.Clear
Application.ReplaceFormat.Clear
Cells.Replace What:="aaaa", Replacement:="bbbbb",
LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False,
SearchFormat:=False, _
ReplaceFormat:=False

..... and this is the one for the workbook:

Application.FindFormat.Clear
Application.ReplaceFormat.Clear
Cells.Replace What:="aaaa", Replacement:="bbbbb",
LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False,
SearchFormat:=False, _
ReplaceFormat:=False


The only way I can make it work, is to set the switch in
the Find / Replace Dialog box on the EDIT Menu bar.
Anyone know how to switch that on in the macro??

Thanks for any help ...

Best regards,
Robert
 
try this
Sub replaceall()
Sheets.Select
Cells.Replace What:="aaa", Replacement:="bbb
Sheets(1).Select
End Sub
 
Don hi and thank you for your help!

That worked - except now I have the other problem - when
I want to restrict a find / replace to a single sheet, it
now changes across the wole book - I tried selecting only
the sheet I wanted it to act on but it still changes all
in everything. Any ideas?

regards,
Robert
 
Hi Don,
That's what I did but the replace still defaults to the
whole sheet. The only way I can restrict it, is via the
Find / Replace option on the Menu bar and if I set the
options to Sheet, it works for the sheet. I need to
switch this via VB though.

I have 2 situations - one where I will change the entire
contents of a workbook and other times that I want to
change a single sheet.

There are two seperate macros that control this.

I think Excel remembers the last Find / Replace selection
you made and applies it until it is changed manually.
What do you think?

Regards,
Robert
 
try this

Sub replaceActiveSheetOnly()
ActiveSheet.Cells.Replace What:="aaa", Replacement:="bbb"
End Sub
 
Hi,
Tried that - actually it was the first thing I tried ...
sigh!!

Same result - it is the dropdown in the find / replace
that controls it no matter what selection I use in VBA.

Thanks anyway

Regards,
Robert
 
Make the manual change to sheets. Use the macros only. I just tested and
that works.
 
correction. Set manually to sheet. Use this for ALL and the activesheet one
for 1 sheet.

Sub replaceal1()
For Each ws In Worksheets
ws.Cells.Replace What:="bbb", Replacement:="aaa"
Next ws
End Sub
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Back
Top