我不能得到当前月份。
这似乎很简单,以获得当前的xx年和一天,如测试与以下内容:
MsgBox Year(Date)
MsgBox Day(Date)
MsgBox Year(Now)
MsgBox Day(Now)
如何将当前月份显示为数字(1 、 2 等)或全名?
我可以在单元格中使用TODAY()
,并在 VBA 中使用CurrentMonth = MonthName(Month(Sheet1.Range("A1")))
进行转换,但我想直接在 VBA for Excel 中执行此操作。
试试看,
debug.print Format(Date, "mmm") 'Mar
debug.print Format(Date, "mmmm") 'March
debug.print Format(Date, "m") '3
debug.print 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()
使用该编号显示当前月份
一个真正有用和简单的方法是将格式功能与日期结合在一起。
示例(假设今天是 2019 年 10 月 23 日):
要将当前月份作为原始问题中的数字:
MsgBox Format(Date, "mm")
^ 将返回:10
要将当前月份作为简短文本:
MsgBox Format(Date, "mmm")
^ 将返回:10 月
要获取当前月份的全文:
MsgBox Format(Date, "mmmm")
^ 将返回:xx月
你也可以把这些与岁月结合起来。
其他示例:
MsgBox Format(Date, "dd-mmm-yyyy")
^ 将于 2019 年 10 月 23 日返回
MsgBox Format(Date, "dddd-mmmm-dd-yyyy")
^ 将返回:周三-xx月-23-2019
这是创建一个自定义格式,因此您可以重新排列 dd,mm,yyyy 区域,如您认为合适,例如:
MsgBox Format(Date, "yyyy/mm/dd")
^ 将返回:2019 / 23 / 10
本站系公益性非盈利分享网址,本文来自用户投稿,不代表码文网立场,如若转载,请注明出处
评论列表(25条)