ドロップダウンボックスに月が入力されています。月が選択されたら、それを月番号に変換したいのですが、これを実行できる関数はありますか?
例えば。 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
セルには月の名前が含まれています。
別のExcel数式A1
は月の名前を含むセルIDです。
=TEXT(DATEVALUE(A1&" 1"), "m")
Sub month()
Dim monthh As Integer
monthh = month(Date)
MsgBox monthh
End Sub
これを試して。
このソリューションではうまくいきませんでした(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