将月份名称转换为数字

时间:2012-08-10 03:51:40

标签: excel excel-vba date vba

我有一个填充月份的下拉框。选择一个月后,我想将其转换为月份数,是否有可以执行此操作的功能?

EG。九月= 9

6 个答案:

答案 0 :(得分:36)

另一种方式

Excel公式

=MONTH(1&A1)

<强> VBA

Sub Sample()
    Dim MonthNm As String
    MonthNm = "September"
    Debug.Print Month(DateValue("01 " & MonthNm & " 2012"))
End Sub

Sub Sample()
    Dim MonthNm As String
    MonthNm = "September"
    Debug.Print Application.Evaluate("=MONTH(1&" & Chr(34) & MonthNm & Chr(34) & ")")
End Sub

替换

答案 1 :(得分:5)

试试这个......

 =MONTH(DATEVALUE(A1&"1"))

A1单元格包含月份名称。

答案 2 :(得分:0)

Sub month()

Dim monthh As Integer

monthh = month(Date)

MsgBox monthh

End Sub

试试这个。

答案 3 :(得分:0)

另一个excel公式,其中A1是具有月份名称的单元格ID:

=TEXT(DATEVALUE(A1&" 1"), "m")

答案 4 :(得分:0)

此解决方案对我不起作用(Excel 2010),我不得不将月份名称缩短为3个字符,并在缩短的字符串前添加日期编号。

=MONTH(1&LEFT(A1;3))

答案 5 :(得分:0)

另一个VBA解决方案

除了Siddharth的有效答案外,出于艺术考虑:-)

Sub SampleTM()
  Dim MonthNm$: MonthNm = "September"
  Debug.Print MonthNm2Num(MonthNm)
End Sub

Function MonthNm2Num(ByVal MonthNm) As Long
    MonthNm2Num = Format(CDate(MonthNm & "/1 0"), "m") * 1&
End Function