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() использует это число для отображения текущего месяца