【发布时间】:2017-08-19 05:13:26
【问题描述】:
在 VBA 中,我知道您可以使用此语法从日期中减去一年
Dim testdate As String, DateTest As String
testdate= "03/21/2017"
DateTest = Month(testdate) & "/" & Day(testdate) & "/" & Year(testdate) - 1
但是你怎么能找到给定年份的第一天和最后一天呢?例如,让我们使用相同的日期
testdate = "03/21/2017"
并获得以下值
firstdate = "01/01/2017"
lastdate = "12/31/2017"
【问题讨论】:
-
你可以使用
Year和EOMonth的组合 -
我强烈建议您在处理日期时考虑使用
Date数据类型 - 使用String类型会在未来给您带来极大的痛苦,最好现在更改。 -
@YowE3K - 日期正在输入到用户表单文本框中。我可以为此设置日期类型还是必须是字符串,因为它是一个文本框?
-
它可能需要是文本框中的字符串,但是一旦用户输入,您应该尽快转换为
Date。类似于Dim myDate As DateIf Not IsDate(TextBox1.Text) Then MsgBox "Not a date": Exit Sub Else myDate = CDate(TextBox1.Text)。这将允许用户在文本框中输入诸如“2017 年 3 月 27 日”之类的内容,并且MyDate将设置为Date27/03/2017(或03/27/2017,如果您按照“mm/dd/yyyy " dates) 然后可用于任何与日期相关的计算。
标签: vba excel date excel-2013