Shouldn’t Have Combined these two topics into One:
In this blog a Formula actually means the Worksheet Functions, that we use in excel sheets directly that begins with “=” (like “=Sum(A1:A10” or “=now()”). Excel Macro can be used to insert either a Formula or Just a Value into a cell.
Require Formula or Just Value from Formula:
- VBA -> Insert Worksheet Formula -> Excel
- VBA -> Use Worksheet Formula -> Insert Value -> Excel
Lets learn how these 2 categories work through an example.
Consider we have a excel sheet with values in Column A and B as below. We are going to calculate Sum and Product of Column A and B in 2 different methods.
Value ! | Value 2 | Sum | Product |
1 | 2 | ||
2 | 2 | ||
3 | 2 | ||
4 | 2 | ||
5 | 2 | ||
6 | 2 | ||
7 | 2 | ||
8 | 2 | ||
9 | 2 | ||
10 | 2 |
1. Insert Excel Formula Through Program:
'ThisWorkbook.Sheets(1).Cells(1,3) = "=WorkSheetFunction()" Private Sub Insert_Worksheet_Function() 'Sum For i = 2 To 11 'ThisWorkbook.Sheets(1).Cells(1,3) = "=A1+B1" or "=SUM(A1,B1) ThisWorkbook.Sheets(1).Cells(i, 3) = "=A" & i & "+B" & i & "" Next i 'Multiply For i = 2 To 11 'ThisWorkbook.Sheets(1).Cells(1,4) = "=A1*B1" ThisWorkbook.Sheets(1).Cells(i, 4) = "=A" & i & "*B" & i & "" Next i End Sub
2. Using WorksheetFunction Formula in Macro:
'Value_From_Function = WorkSheetFunction.FunctionName(Parameters)" Private Sub Use_Worksheet_Function_In_Macro() 'Sum For i = 2 To 11 val1 = ThisWorkbook.Sheets(1).Cells(i, 1) val2 = ThisWorkbook.Sheets(1).Cells(i, 2) ThisWorkbook.Sheets(1).Cells(i, 3) = WorksheetFunction.Sum(val1, val2) Next i 'Multiply For i = 2 To 11 val1 = ThisWorkbook.Sheets(1).Cells(i, 1) val2 = ThisWorkbook.Sheets(1).Cells(i, 2) ThisWorkbook.Sheets(1).Cells(i, 4) = WorksheetFunction.Product(val1, val2) Next i End Sub
Though this Article explains about 2 different methods, most of the times any one of the method will be used.