Excel 如何获取当前月份?
我无法获取当前月份的数据 获取当前年份和日期似乎非常简单,如下所示:Excel 如何获取当前月份?,excel,vba,Excel,Vba,我无法获取当前月份的数据 获取当前年份和日期似乎非常简单,如下所示: 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中执行此操作 Month(Now)
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中执行此操作
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()
使用该编号显示当前月份以下是我找到的最好的方法:
Sub getMonth()
'MsgBox DatePart("m", Date)
'MsgBox Evaluate("MONTH(""" & Date & """)")
'MsgBox VBA.DateTime.Month(Date)
MsgBox Format(Date, "mmmm")
End Sub
一种非常有用且简单的方法是将format函数与date组合在一起 示例(假设今天是2019年10月23日): 要将当前月份作为原始问题中的数字获取,请执行以下操作:
MsgBox Format(Date, "mm")
^返回时间:10点
要以短文本形式获取当前月份,请执行以下操作:
MsgBox Format(Date, "mmm")
^将于10月1日返回
要获取当前月份的全文,请执行以下操作:
MsgBox Format(Date, "mmmm")
^将于10月返回
你也可以将这些与天数和年份结合起来
其他示例:
MsgBox Format(Date, "dd-mmm-yyyy")
^将于2019年10月23日返回
MsgBox Format(Date, "dddd-mmmm-dd-yyyy")
^返回时间:2019年10月23日星期三
这将创建自定义格式,以便您可以根据需要重新排列dd、mm、yyyy区域,例如:
MsgBox Format(Date, "yyyy/mm/dd")
^将返回:2019/23/10以下是我如何根据当前月份名称找到上个月的,monthNum的任务是解决您的问题所需的部分
month = "February"
'****'
monthNum = Application.Evaluate("=MONTH(1&" & Chr(34) & month & Chr(34) & ")") 'Returns month #
'****'
If monthNum = 1 Then
monthNum = 12
Else
monthNum = monthNum - 1
End If
month = MonthName(monthNum) 'Returns January
Month(现在)
不起作用?它应该返回3No,因为某些原因它不会返回,因此我感到困惑。@TimWilkinson您可能会使用一些保留字,如“date”作为字段名或变量。首先解决您的编译问题。您已经在某处声明了一个名为Month的变量/例程。在周四得到了Friday vibe,我将Month声明为脚本后面的字符串。现在一切正常。
month = "February"
'****'
monthNum = Application.Evaluate("=MONTH(1&" & Chr(34) & month & Chr(34) & ")") 'Returns month #
'****'
If monthNum = 1 Then
monthNum = 12
Else
monthNum = monthNum - 1
End If
month = MonthName(monthNum) 'Returns January