web-dev-qa-db-ja.com

月の名前を数値に変換する

ドロップダウンボックスに月が入力されています。月が選択されたら、それを月番号に変換したいのですが、これを実行できる関数はありますか?

例えば。 9月= 9

10
HL8

別の方法

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

交換する

38
Siddharth Rout

これを試して...

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

どこ A1セルには月の名前が含まれています。

5
SiB

別のExcel数式A1は月の名前を含むセルIDです。

=TEXT(DATEVALUE(A1&" 1"), "m")
0
ThiamTeck
Sub month()

Dim monthh As Integer

monthh = month(Date)

MsgBox monthh

End Sub

これを試して。

0
Inaki Melchor

このソリューションではうまくいきませんでした(Excel 2010)。月の名前を3文字に短縮し、短縮された文字列の前に日番号を追加する必要がありました。

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

別の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
0
T.M.