刚刚开始在这里编写VBA,原始初学者。
我正在寻找有关微调显示日期的帮助。在网上找到的示例的帮助下,我有了一个模块,可以将上个月和年份的名称放入“总计”工作表中的单元格中,它可以满足我的需要。
不过,为了使其完美,我想更改显示的日期信息。
这是Office 365中的Excel。我已经在线搜索了示例,并阅读了有关使用DateAdd的教程,但在任何地方都找不到。 (部分问题是我很新,我不知道如何在vba说话中用短语表达来找到好的答案!)
我现在使用的是
Sub PreviousMonthBasedOnCurrentMonth()
Dim ws As Worksheet
Set ws = Worksheets("Totals")
ws.Range("A1") = Format(DateAdd("m", -1, Date), "mmmm yyyy")
End Sub
现在这将在单元格中插入“ 2019年2月1日”,这对于我来说足以确定我在看哪个月。但理想情况下,我想要“ 2019年2月1日至28日”(或者,如果我在11月运行此程序,则说“ 2019年10月1日至31日”)。
如何显示“月份的第一天-月份的最后一天”部分?是DateAdd的一部分,还是从头开始进行更多编码?
不确定自己如何写类似的东西。指向起点的指针会很棒。
答案 0 :(得分:0)
尝试这样的事情:
Dim dt, dt2
dt = DateAdd("m", -1, Date) 'this time last month
dt2 = DateSerial(Year(Date), Month(Date), 1) - 1 'last day of previous month
Debug.Print Format(dt2, "mmmm") & " 1-" & Day(dt2) & " " & Format(dt2, "yyyy")
注意,尽管如此,Excel仍不会将其视为日期...
答案 1 :(得分:0)
您也可以通过以下方式在一行上完成该操作:
Debug.Print Format(DateAdd("m", -1, Date), "mmmm") & " 1-" & Format(CDate(WorksheetFunction.EoMonth(DateAdd("m", -1, Date), 0)), "dd, yyyy")
OR
Debug.Print Format(DateAdd("m", -1, Date), "mmmm") & YourPartialDateVariableHere & Format(CDate(WorksheetFunction.EoMonth(DateAdd("m", -1, Date), 0)), "dd, yyyy")