VBA – Convert Month Name to Number and Vice Versa
Convert number to name – [3 -> March]
Converting month number to name in VBA is actually coming out of the box with the MonthName() function, which is built-in the stanard VBA library:
Sub MonthNameExample()
Dim i As Long
For i = 1 To 12
Debug.Print MonthName(i)
Debug.Print Format(MonthName(i, True))
Next
End Sub
The result is not flabbergasting, but expected:

Convert name to number – [March -> 3]
MonthName() is a built in function in VBA, but MonthNumber() does not exist. Unfortunately. That’s why we should write it:
Function MonthNumber(myMonthName As String)
MonthNumber = Month(DateValue("1 " & myMonthName & " 2020"))
MonthNumber = Format(MonthNumber, "00")
End Function
And it works even a bit better than expected, accepting both “Feb” and “February” as an input:

Enjoy!