The below example will help you to know how to call a function in Excel VBA Macros (it can be Excel VBA function, or user defined function). We generally create lot of function and we use the functions whenever and any time we want. The below example will help you to understand calling a simple function with and without parameters.
Calling a function Excel VBA
Here is the simple example to call the Now function to display the time. We use the Now function to get the System Current Time and Date.
'vba code to call a function Sub vba_code_to_call_a_function() MsgBox Now() End Sub
Calling a function Excel VBA: Function with Parameters
Here is the another example to call the Left function to extract the left part of a string. We use the left function to extract the left part of any string.
'vba code to call a function Sub vba_code_to_call_a_function_a() MsgBox Left("123", 2) End Sub
Calling a user defined Function Excel VBA
It is same as above, but we have to make sure that the functions is written before calling the function. Other wise it will though the run time error.
'User Defined Function Function mySum(ByVal A As Integer, ByVal B As Integer) mySum = A + B End Function 'vba code to call a the user defined function Sub vba_code_to_call_a_function_b() 'Calling udf MsgBox mySum(1, 5) End Sub
VBA code to Convert and Save the Excel to CSV – Instructions
Please follow the below step by step instructions to test this Example VBA Macro codes:
- Step 1: Open a New Excel workbook
- Step 2: Press Alt+F11 – This will open the VBA Editor (alternatively, you can open it from Developer Tab in Excel Ribbon)
- Step 3: Insert a code module from then insert menu of the VBE
- Step 4: Copy the above code and paste in the code module which have inserted in the above step
- Step 5: Now press F8 to debug the Macro to check how the VBA is calling the function while execution
Timer vba codes
Dim binNew As Boolean
Dim TRows, THows, i As Long
Private Sub UserForm_Click()
End Sub
Private Sub CmdClose_Click()
If CmdClose.Caption = “Close” Then
Unload Me
Else
CmdClose.Caption = “Close”
CmdNew.Enabled = True
CmdDelete.Enabled = True
End If
End Sub
Private Sub CmdNew_Click()
binNew = True
txtEmpNo.Text = ”
txtEmpName.Text = ”
txtAddr1.Text = ”
txtAddr2.Text = ”
txtAddr3.Text = ”
CmdClose.Caption = “Cancel”
CmdNew.Enabled = False
CmdSave.Enabled = True
CmdDelete.Enabled = False
End Sub
Private Sub cmdSave_Click()
If Trim(txtEmpNo.Text) = ” Then
MsgBox “Enter Emp. No. “, vbCritical, “Save”
Exit Sub
End If
Call prSave
End Sub
Private Sub prSave()
If binNew = True Then
THows = Worksheets(“Data”).Range(“A1”).CurrentRegion.Rows.Count
With Worksheets(“Data”).Range(“A1″)
.Offset(THows, 0).Value = txtEmpNo.Text
.Offset(THows, 1).Value = txtEmpName.Text
.Offset(THows, 2).Value = txtAddr1.Text
.Offset(THows, 3).Value = txtAddr2.Text
.Offset(THows, 4).Value = txtAddr3.Text
End With
txtEmpNo.Text = ”
txtEmpName.Text = ”
txtAddr1.Text = ”
txtAddr2.Text = ”
txtAddr3.Text = ”
Call PrComboBoxFill
Else
For i = 2 To TRows
If Trim(Worksheets(“Data”).Cells(i, 1).Value) = Trim(ComboBox1.Text) Then
Worksheets(“Data”).Cells(i, 1).Value = txtEmpNo.Text
Worksheets(“Data”).Cells(i, 2).Value = txtEmpName.Text
Worksheets(“Data”).Cells(i, 3).Value = txtAddr1.Text
Worksheets(“Data”).Cells(i, 4).Value = txtAddr2.Text
Worksheets(“Data”).Cells(i, 5).Value = txtAddr3.Text
txtEmpNo.Text = ”
txtEmpName.Text = ”
txtAddr1.Text = ”
txtAddr2.Text = ”
txtAddr3.Text = ”
Exit For
End If
Next i
End If
binNew = False
End Sub
————————————-
Private Sub cmdDelete_Click()
TRows = Worksheets(“Data”).Range(“A1”).CurrentRegion.Rows.Count
Dim strDel
strDel = MagBox(“Delete ?”, vbYesNo, “Delete”)
If strDel = vbYes Then
For i = 2 To TRows
If Trims(Worksheets(“Data”).Cells(i, 1).Value) = Trim(ComboBox1.Text) Then
‘ sheet1.range(i & “:” & i).Delete
Worksheets(“Data”).Range(i & “:” & i).Delete
TxtEmpNo.Text = ”
txtEmpName.Text = ”
TxtempAddr1.Text = ”
TxtempAddr2.Text = ”
TxtempAddr3.Text = ”
TxtempAddr4.Text = ”
Call prCoboBoxFill
Exit For
End If
Next i
If Trim(ComboBox1.Text) = ” Then
cmdSave.Enabled = False
cmdDelete.Enabled = False
Else
cmdSave.Enabled = True
cmdDelete.Enabled = True
End If
End If
End Sub
——————————–
Private Sub CmdClose_Click()
If CmdClose.Caption = “Close” Then
Unload Me
Else
CmdClose.Caption = “Close”
CmdNew.Enabled = True
CmdDelete.Enabled = True
End If
End Sub
————————————-
Private Sub PrComboBoxFill()
TRows = Worksheets(“Data”).Range(“A1”).CurrentRegion.Rows.Count
ComboBox1.Clear
For i = 2 To TRows
ComboBox1.AddItem Worksheets(“Data”).Cells(i, 1).Value
Next i
End Sub
—————————————————–
Private Sub Userform_Initialize()
Call PrComboBoxFill
CmdSave.Enabled = False
CmdDelete.Enabled = False
End Sub
—————————————————–
Private Sub cmdsearch_Click()
binNew = False
txtEmpNo.Text = ”
txtEmpName.Text = ”
txtAddr1.Text = ”
txtAddr2.Text = ”
txtAddr3.Text = ”
TRows = Worksheets(“Data”).Range(“A1”).CurrentRegion.Rows.Count
For i = 2 To TRows
If Val(Trim(Worksheets(“Data”).Cells(i, 1).Value)) = Val(Trim(ComboBox1.Text)) Then
txtEmpNo.Text = Worksheets(“Data”).Cells(i, 1).Value
txtEmpName.Text = Worksheets(“Data”).Cells(i, 2).Value
txtAddr1.Text = Worksheets(“Data”).Cells(i, 3).Value
txtAddr2.Text = Worksheets(“Data”).Cells(i, 4).Value
txtAddr3.Text = Worksheets(“Data”).Cells(i, 5).Value
Exit For
End If
Next i
If txtEmpNo.Text = ” Then
Else
CmdSave.Enabled = True
CmdDelete.Enabled = True
End If
End Sub