In this article, I’ll show you how you can convert a formula of a worksheet to its value automatically using Excel VBA.
Excel VBA: Convert Formula to Value Automatically (Quick View)
Sub Convert_Formula_to_Value_1()
Sheet_Name = "Sheet1"
Set Cell_Range = Worksheets(Sheet_Name).UsedRange
For i = 1 To Cell_Range.Rows.Count
   For j = 1 To Cell_Range.Columns.Count
       Cell_Range.Cells(i, j) = Cell_Range.Cells(i, j).Value
   Next j
Next i
End Sub
Download Practice Workbook
Download this practice workbook to exercise while you are reading this article.
2 Suitable Methods to Convert Formula to Value Automatically in Excel VBA
So, without further delay, let’s go to our main discussion today. Here we’ve got a worksheet called Sheet1 that contains the names of some candidates, their marks in written and viva of a recruitment test, the average marks, and a recommendation mentioning whether they are selected or not.
The average marks and the recommendation columns contain formulas.
Our objective is to convert the formulas to values using a VBA code.
We can develop the VBA code in two methods.
Method 1: Convert Formula to Values Automatically by an Iteration in Excel VBA
You can convert all the formulas of a worksheet to values by iterating through a for-loop. We’ll replace the content in each cell of the worksheet with its value.
The complete VBA code will be:
â§ VBA Code:
Sub Convert_Formula_to_Value_1()
Sheet_Name = "Sheet1"
Set Cell_Range = Worksheets(Sheet_Name).UsedRange
For i = 1 To Cell_Range.Rows.Count
   For j = 1 To Cell_Range.Columns.Count
       Rng.Cells(i, j) = Cell_Range.Cells(i, j).Value
   Next j
Next i
End Sub
â§ Output:
Run this code (Don’t forget to change the name of the worksheet according to your need). It’ll convert all the formulas of the worksheet to their values.
Read More: Convert Formula to Value in Multiple Cells in Excel (5 Effective Ways)
Method 2: Convert Formula to Values Automatically by Copying and Pasting in Excel VBA
You can also convert the formulas of a worksheet to their values by first copying them and then pasting them. For pasting, we’ll use the PasteSpecial method of VBA setting the Paste property to xlPasteValues.
The complete VBA code will be:
â§ VBA Code:
Sub Convert_Formula_to_Value_2()
Sheet_Name = "Sheet1"
Set Rng = Worksheets(Sheet_Name).UsedRange
First_Cell = Rng.Cells(1, 1).Address
Rng.Copy
Worksheets(Sheet_Name).Range(First_Cell).PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
End Sub
â§ Output:
Run this code (Again don’t forget to change the worksheet name). It’ll convert all the formulas of the worksheet to their values again.
Read More: Convert Formula to Value Without Paste Special in Excel (5 Easy Methods)
Similar Readings
- How to Stop Formula to Convert into Value Automatically in Excel
- Putting Result of a Formula in Another Cell in Excel (4 Common Cases)
- How to Convert Formula Result to Text String in Excel (7 Easy Ways)
Developing a Macro to Convert Formula to Value Automatically Using the VBA Codes
We’ve seen two different VBA codes to convert formulas to values automatically in a worksheet in Excel. Now we’ll see how we can develop a Macro using the codes.
⧪ Step 1: Opening the VBA Window
Press ALT + F11 on your keyboard to open the Visual Basic window.
⧪ Step 2: Inserting a New Module
Go to Insert > Module in the toolbar. Click on Module. A new module called Module1 (or anything else depending on your past history) will open.
⧪ Step 3: Putting the VBA Code
This is the most important step. Insert any of the two given VBA codes in the module.
⧪ Step 4: Running the Code
Click on the Run Sub / UserForm tool from the toolbar above.
The code will run. And all the formulas of your input worksheet will be converted to their values automatically.
Read More: VBA to Remove Formulas in Excel Keeping Values and Formatting
Things to Remember
- In method 2 of developing the codes, we used the xlPasteValues property of VBA. But besides this, there are 11 more properties to paste in VBA. If interested, you can have a look here.
Conclusion
Therefore, this is the process to develop a VBA code to convert the formulas of a worksheet to their values automatically. Do you have any questions? Feel free to ask us. And don’t forget to visit our site ExcelDemy for more posts and updates.