11

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

例如。九月 = 9

4

6 回答 6

42

其他方式

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

代替

于 2012-08-10T04:07:25.647 回答
5

试试这个...

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

其中A1单元格包含月份名称。

于 2012-08-10T03:59:59.843 回答
0
Sub month()

Dim monthh As Integer

monthh = month(Date)

MsgBox monthh

End Sub

试试这个。

于 2014-02-12T00:17:34.887 回答
0

另一个excel公式在哪里A1是带有月份名称的单元格ID:

=TEXT(DATEVALUE(A1&" 1"), "m")
于 2016-02-29T16:20:55.593 回答
0

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

=MONTH(1&LEFT(A1;3))
于 2017-01-05T09:55:56.387 回答
-1

另一个 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
于 2019-02-06T20:45:22.703 回答