【发布时间】:2012-08-07 09:01:11
【问题描述】:
我有填充月份的下拉框。选择一个月后,我想将其转换为月份编号,有没有可以做到这一点的功能?
例如。九月 = 9
【问题讨论】:
我有填充月份的下拉框。选择一个月后,我想将其转换为月份编号,有没有可以做到这一点的功能?
例如。九月 = 9
【问题讨论】:
另一种方式
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
替换
【讨论】:
试试这个...
=MONTH(DATEVALUE(A1&"1"))
A1 单元格包含月份名称。
【讨论】:
Sub month()
Dim monthh As Integer
monthh = month(Date)
MsgBox monthh
End Sub
试试这个。
【讨论】:
另一个 excel 公式,其中A1 是带有月份名称的单元格 ID:
=TEXT(DATEVALUE(A1&" 1"), "m")
【讨论】:
这个解决方案对我不起作用(Excel 2010),我不得不将月份名称缩短为 3 个字符,并在缩短的字符串前面添加日期。
=MONTH(1&LEFT(A1;3))
【讨论】:
另一种 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
【讨论】: