Excel VBA текущий месяц получения
Я играл с date
в VBA и не может получить текущий месяц. Кажется очень простым получить текущий год и день, как проверено со следующим:
MsgBox Year(Date)
MsgBox Day(Date)
MsgBox Year(Now)
MsgBox Day(Now)
в качестве нескольких простых примеров.
но как можно показать текущий месяц как число (1, 2 и т. д.) или полное имя? Я мог бы использовать TODAY()
в ячейке и преобразовать это в VBA с чем-то вроде CurrentMonth = MonthName(Month(Sheet1.Range("A1")))
. Но я хотел бы иметь возможность сделать это непосредственно в VBA для Превосходить.
3 ответов
попробуйте
debug.print Format(Date, "mmm") 'Mar
debug.print Format(Date, "mmmm") 'March
debug.print Int(Format(Date, "m")) '3
debug.print Int(Format(Date, "mm")) '03
Month(Now)
возвращает номер индекса, связанный с текущим месяцем.
код Jeeped ниже является наиболее компактным, но чтобы дать вам представление о том, как работают индексы, следующий код вернет имя месяца на основе возвращенного индекса:
Dim months(11) As String
months(0) = "Jan"
months(1) = "Feb"
months(2) = "Mar"
months(3) = "Apr"
months(4) = "May"
months(5) = "Jun"
months(6) = "Jul"
months(7) = "Aug"
months(8) = "Sep"
months(9) = "Oct"
months(10) = "Nov"
months(11) = "Dec"
Dim nowMonth As Integer
nowMonth = Month(Now)
For i = 0 To 11
If nowMonth = (i + 1) Then
MsgBox (months(i))
End If
Next
найдено более простое решение, чтобы получить имя текущего месяца
просто использовать MonthName(Month(Now))
и назначьте его строке.
Month(Now)
дает вам номер месяца и MonthName()
использует это число для отображения текущего месяца