FLASH SALE! - "CHATGPT AND ARTIFICIAL INTELLIGENCE FOR MICROSOFT EXCEL AT 60% OFF" Enroll Now

VBA Month Function

Updated on June 11, 2024
Article byJeevan A Y
Edited byAshish Kumar Srivastav
Reviewed byDheeraj Vaidya, CFA, FRM

Excel VBA Month

VBA Month function is a built-in function used to get a month from a date. The output returned by this function is Integer ranging from 1 to 12. This function only extracts the month number from the supplied date value.

For example, if the date is 28-May-2019, then to extract the month number from this date, we can use the MONTH function.

VBA-Month

You are free to use this image on your website, templates, etc, Please provide us with an attribution linkHow to Provide Attribution?Article Link to be Hyperlinked
For eg:
Source: VBA Month Function (wallstreetmojo.com)

–>> If you want to learn Excel VBA professionally, then our VBA Basic Course (16+ hours) is the perfect solution. In our Basic Excel VBA course you learn the skill of automating tasks using Variables, Data Types, Ranges, and Cells in VBA. Master Control Structures, including Conditional Statements and Loops, and discover techniques for manipulating data through sorting, filtering, and formatting. By the end of the course, you will be able to apply your acquired skills to real projects, culminating in an Excel VBA project which will solidify your ability to create efficient, automated solutions.

How to Use the Month Function in VBA?

Below is the syntax of the MONTH function.

VBA Month Syntax

We need to provide the date from which we are trying to extract the month number.

You can download this VBA Month Excel Template here – VBA Month Excel Template

Example #1

We will see how to write a code to extract the month number from the date. We will take the date as “10th Oct 2019.″

Step 1: Start the macro procedure.

Code:

Sub Month_Example1()

End Sub
 Example 1

Step 2: Define the variable to hold the date value. Since we are storing the data value, our data type should be “Date.” So declare the variable and assign the data type as “Date” to the declared variable.

Code:

Sub Month_Example1()

Dim DDate As Date

End Sub
VBA Month Example 1.1

Step 3: For this variable, assign the date value of 10th Oct 2019.

Code:

Sub Month_Example1()

Dim DDate As Date

DDate = "10 Oct 2019"

End Sub
Example 1.2

Step 4: Now assign the month number to declare one more variable as “Integer.”

Code:

Sub Month_Example1()

Dim DDate As Date

Dim MonthNum As Integer

DDate = "10 Oct 2019"

End Sub
VBA Month Example 1.3
Note: We have declared the variable Integer because our month count ends at 12 only. So, an integer data type can hold this number.

Step 5: For this variable, we will open the MONTH function.

Code:

Sub Month_Example1()

Dim DDate As Date

Dim MonthNum As Integer

DDate = "10 Oct 2019"

MonthNum = Month(

End Sub
 Example 1.4

Step 6: The Month function asks for the “Date” that we must supply to extract the month number. Since we have already stored the targeted date to the variable “DDate,” supply this variable as the input parameter for the month function.

Code:

Sub Month_Example1()

Dim DDate As Date

Dim MonthNum As Integer

DDate = "10 Oct 2019"

MonthNum = Month(DDate)

End Sub
VBA Month Example 1.5

Step 7: Now, the “Month” function will return the month number from the supplied date to the variable “MonthNum” and finally show the result in a message box in VBA.

Code:

Sub Month_Example1()

Dim DDate As Date

Dim MonthNum As Integer

DDate = "10 Oct 2019"

MonthNum = Month(DDate)

MsgBox MonthNum

End Sub
 Example 1.6

Run the code and see the month number in the message box.

Output:

VBA Month Example 1.7

So, the month number from the supplied date is 10, i.e., October.

Example #2

Now, we will take cell references for coding. Below is the date we have on the worksheet.

 Example 2.0

So, from the cell A2 date value, we need to extract the month number from cell B2.

Code:

Sub Month_Example2()

Range("B2").Value =

End Sub
VBA Month Example 2

Open the MONTH function and supply the date as RANGE A2 value.

Code:

Sub Month_Example2()

Range("B2").Value = Month(Range("A2"))

End Sub
 Example 2.1

We have supplied a Range A2 cell because our date is in cell A2 this time, so the same will be the reference.

Now, execute the code and get the month number from the date in cell B2.

VBA Month Example 2.3.0

Here you go. We got the month number in cell B2.

Example #3

We have extracted the month for the single-cell date, but what if we have multiple data rows like the one below?

 Example 3

In these cases, we need to loop through the cells and execute the task of extracting the month number from each respective date.

The below code will do the job for us.

Code:

Sub Month_Example3()

     Dim k As Long

     For k = 2 To 12

     Cells(k, 3).Value = Month(Cells(k, 2).Value)

     Next k

End Sub
VBA Month Example 3.1

What this code will do is it will loop through the rows from 2 to 12 and extract the month number from the second column and store the result in the third column.

 Example 3.2

Things to Remember here

  • The MONTH function is a worksheet function and a VBA function.
  • The MONTH function requires a valid date reference. Otherwise, we will get an error message.
  • If the month number is <1 and >12, it will throw an error message.

This article has been a guide to VBA Month. Here, we discuss using the VBA month function to extract the month number from the given date, along with examples and a downloadable Excel template. Below you can find some useful Excel VBA articles: –