刚开始在这里写VBA,原始初学者。
我正在寻找帮助来微调我显示的日期。借助我在网上找到的例子,我有一个模块可以将上个月和年份的名称放入我的Totals工作表中的单元格中,它可以完成我需要的工作。
但是,为了使其完美,我想更改显示的日期信息。
这是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日至8日”(或者,比如,“2019年10月1日至31日”,如果我在11月份这样做的话)。
如何显示“月中的第一天 - 月中的最后一天”部分?是DateAdd的一部分,还是从头开始编写更多代码?
不知道如何自己写这样的东西。指向哪里开始的指针会很棒。
尝试这样的事情:
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不会将此视为日期...
您也可以通过这种方式在一条线上完成:
Debug.Print Format(DateAdd("m", -1, Date), "mmmm") & " 1-" & Format(CDate(WorksheetFunction.EoMonth(DateAdd("m", -1, Date), 0)), "dd, yyyy")
要么
Debug.Print Format(DateAdd("m", -1, Date), "mmmm") & YourPartialDateVariableHere & Format(CDate(WorksheetFunction.EoMonth(DateAdd("m", -1, Date), 0)), "dd, yyyy")