详细说明将日期添加到单元格后如何显示日期

问题描述 投票:0回答:2

刚开始在这里写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的一部分,还是从头开始编写更多代码?

不知道如何自己写这样的东西。指向哪里开始的指针会很棒。

excel vba dateadd
2个回答
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不会将此视为日期...


0
投票

您也可以通过这种方式在一条线上完成:

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")
© www.soinside.com 2019 - 2024. All rights reserved.