Excel VBA当前获得月份

Tim*_*son 10 excel vba

我一直在玩TODAY()VBA并且无法获得当月.通过以下方式测试,获得当前年份和日期似乎非常简单:

MsgBox Year(Date)
MsgBox Day(Date)
MsgBox Year(Now)
MsgBox Day(Now)
Run Code Online (Sandbox Code Playgroud)

作为一些简单的例子.

但是如何将当前月份显示为数字(1,2等)或全名?我可以CurrentMonth = MonthName(Month(Sheet1.Range("A1")))在单元格中使用它并在VBA中将其转换为类似的东西TODAY().但我希望能够在VBA for Excel中直接执行此操作.

小智 27

尝试,

debug.print Format(Date, "mmm")       'Mar
debug.print Format(Date, "mmmm")      'March
debug.print Format(Date, "m")    '3
debug.print Format(Date, "mm")   '03
Run Code Online (Sandbox Code Playgroud)


Sco*_*cus 7

 Month(Now)
Run Code Online (Sandbox Code Playgroud)

返回与当前月份关联的索引号。

下面 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
Run Code Online (Sandbox Code Playgroud)


小智 5

找到了一个更简单的解决方案来获取当前月份名称

只需使用MonthName(Month(Now))并将其分配给一个字符串。

Month(Now)为您提供月份编号并MonthName()使用该编号显示当前月份