VBA Excel:从输入日期输出下一季度的功能
题
我在VBA中工作以获得Excel,需要使用我可以输入Excel转换日期格式的日期(例如40736)的函数。并在yyymmdd格式之后的输入日期之后产出本季度的日期,季度为1月1日,4月1日,7月1日和10月1日。所有计算都需要在VBA中完成,而不是工作表。 例如:我的输入可能是40736(与7/12/2011对应的Excel日期。 我想我的产出到20111001,它与以下季度相对应。
我真的不确定如何甚至习惯这种情况,所以任何对策略或提出的代码的法律的帮助都会很大。谢谢
解决方案
这里是Martin的代码的轻微变化,给出下一个季度的第一天:
Function GetQuarterDate2(InDate As Date) As Date
Dim Quarter As Integer
Dim OutDate As Date
Dim yr As Long
Quarter = DatePart("q", InDate)
yr = Year(InDate)
If Quarter = 1 Then
OutDate = DateSerial(yr, 4, 1)
ElseIf Quarter = 2 Then
OutDate = DateSerial(yr, 7, 1)
ElseIf Quarter = 3 Then
OutDate = DateSerial(yr, 10, 1)
ElseIf Quarter = 4 Then
OutDate = DateSerial(yr + 1, 1, 1)
End If
GetQuarterDate2 = OutDate
End Function
. 其他提示
以下应该工作,将您的日期提供为参与论点;
Function GetQuarterDate(InDate As Date) As Date
Dim Quarter As Integer
Dim OutDate As Date
Quarter = DatePart("q",InDate)
If Quarter = 1 Then
OutDate = DateSerial(DatePart("yyyy",InDate),1,1)
ElseIf Quarter = 2 Then
OutDate = DateSerial(DatePart("yyyy",InDate),4,1)
ElseIf Quarter = 3 Then
OutDate = DateSerial(DatePart("yyyy",InDate),7,1)
ElseIf Quarter = 4 Then
OutDate = DateSerial(DatePart("yyyy",InDate),10,1)
End If
GetQuarterDate = OutDate
End Function
. 不隶属于 StackOverflow