如何在VB中获得上个月的开始和结束

Kat*_*a24 12 ms-access vba access-vba

我试图创建一些VB代码,将获得上个月的开始和结束.我能够在当前这个月只是:

Month(DateValue(Now))
Run Code Online (Sandbox Code Playgroud)

哪个会返回3.从那里我可以带走1给我2个意思二月.这很好,但是当我在1月份,我重复这个并且它给我零 - 我的代码将失败.谁知道如何获得前几个月的开始和结束日呢?

谢谢

Fio*_*ala 29

上个月的第一天始终为1,要获取上个月的最后一天,请使用DateSerial为0:

''Today is 20/03/2013 in dd/mm/yyyy
DateSerial(Year(Date),Month(Date),0) = 28/02/2013 
DateSerial(Year(Date),1,0) = 31/12/2012 
Run Code Online (Sandbox Code Playgroud)

您可以像上面这样从第一天开始:

LastDay = DateSerial(Year(Date),Month(Date),0)
FirstDay = LastDay-Day(LastDay)+1
Run Code Online (Sandbox Code Playgroud)

另请参阅:如何计算VBScript中的最后一个工作日


小智 6

我有第一天和最后一天的类似公式

这个月的第一天

FirstDay = DateSerial(Year(Date),Month(Date),1)
Run Code Online (Sandbox Code Playgroud)

下个月的零日是该月的最后一天

LastDay = DateSerial(Year(Date),Month(Date)+ 1,0) 
Run Code Online (Sandbox Code Playgroud)


MrB*_*lue 5

firstDay = DateSerial(Year(DateAdd("m", -1, Now)), Month(DateAdd("m", -1, Now)), 1)
lastDay = DateAdd("d", -1, DateSerial(Year(Now), Month(Now), 1))
Run Code Online (Sandbox Code Playgroud)

这是另一种方法,但我认为 Remou 的版本看起来更干净。