In VBA I know you can use this syntax to subtract a year from a date
Dim testdate As String, DateTest As String
testdate= "03/21/2017"
DateTest = Month(testdate) & "/" & Day(testdate) & "/" & Year(testdate) - 1
But how could you find the first and last date of a given year? For example, let's use the same date
testdate = "03/21/2017"
and get the following values
firstdate = "01/01/2017"
lastdate = "12/31/2017"
You can use DateSerial
:
Sub Test()
Dim dt As Date, firstDay As Date, lastDay As Date
dt = Date
firstDay = DateSerial(Year(dt), 1, 1)
lastDay = DateSerial(Year(dt), 12, 31)
Debug.Print firstDay
Debug.Print lastDay
End Sub