Table Of Contents
Find & Replace Function in VBA
If your Excel job involves routine tasks finding and replacing something with something, then you need this article at any cost. Because after reading this article, you would probably save 80% of your time by learning this VBA coding technique. Find and Replace in Excel is an often used tool. We can implement the same with VBA as well. Our earlier article, "VBA Find," shows you how to use the FIND method in VBA. This article will show you how to use the VBA "Find & Replace" method.
Follow the article to learn this technique.
VBA Find and Replace Syntax
We must follow the steps below to use the Find and Replace method in VBA. First, we have selected the range of cells, so mention the range of cells using RANGE object in VBA.
Now put a dot (.) to see the IntelliSense list.
Select the Replace method from the list.
We can see the huge parameter list of the Replace method. Now, we will see each parameter explanation below.
- What: This is nothing but what we need to find to replace the value.
- Replacement: With the found value, what should be the new value to be replaced with?
- Look At: This is to mention whether we want to look at the full content or just the part of the content. We can supply two parameters here "xlWhole" & "xlPart."
- Search Order: This mentions the search order, either rows or columns. We can supply two parameters here "xlByRows" & "xlByColumns."
- Match Case: The content we are searching for is case-sensitive. Suppose the case-sensitive argument is TRUE or else FALSE.
- Search Format: We can also search the content by formatting the value we are looking for.
- Replace Format: We can replace one format with another format as well.
Examples of VBA Find and Replace in Excel
Below are some examples of the Excel VBA Find and Replace method.
Example #1 - VBA Find and Replace the Word
Let us look at the following example to understand the VBA Find and Replace method. First, take a look at the following data.
Step 1: First, mention the Range of cells we are replacing. In this example, the range is from A1 to B15 so the code will be Range ("A1: B15").
Code:
Sub Replace_Example1() Range ("A1:B15") End Sub
Step 2: Now, put a dot to see the IntelliSense list.
Step 3: Select the Replace method from the IntelliSense list.
Step 4: Mention what parameter as “September.”
Code:
Range("A1:B15").Replace What:="September"
Step 5: Next, Replace with parameter should be the new value we are replacing with, i.e., "December."
Code:
Range("A1:D4").Replace What:="September", Replacement:="December"
As of now, ignore all the other parameters. Now, run the VBA code to see the replacement method with VBA.
So, it has replaced all of September with the word “December.”
Example #2 - Case Sensitive Replacement
The more advanced example of the VBA Find & Replace method will be using case sensitive replacement methods. We have created this sample data for this example, as shown in the image below.
We have two cell data in capital letters, “HELLO.” Wherever we have a capital “HELLO,” it should be replaced by the new word “Hiii.”
As usual, write the code, and mention what to find and replace first.
Code:
Sub Replace_Example2() Range("A1:D4").Replace What:="HELLO", Replacement:="Hiii" End Sub
For the next argument, "Match Case," write the condition as TRUE.
Code:
Range("A1:D4").Replace What:="HELLO", Replacement:="Hiii", MatchCase:=True
Now, run the code. It will replace only the capital “HELLO” with “Hiii.”
Imagine you have not applied the Match Case argument in VBA, then it will replace all the “Hello” with “Hiii.”
Note: I have removed the Match Case argument here. By default, the MATCH CASE argument value is FALSE.
As we can see in the above image, it has replaced all the "hello" words with "hiii."
So, whenever we want to use MATCH CASE criteria, we should apply the argument as "TRUE." By default, this argument value is "FALSE." Like this, we can use the "FIND & REPLACE" method to find something and replace the found value with something else.