VBA Excel:从inputdate输出下一季度的函数

我在Excel中工作,需要使用一个函数,我可以inputdate格式的Excel转换date(如40736)。 并输出紧接inputdate的季度的date,格式为yyymmdd,其中季度为1月1日,4月1日,7月1日和10月1日。所有计算都需要以vba而不是工作表的forms完成。 举个例子:我的input可能是40736(与2011年12月7日相对应的exceldate,我希望我的输出是20111001,这与下一季度相对应。

我真的不知道如何解决这个问题,所以任何有关策略或build议的代码的帮助都会很棒。 谢谢

下面是马丁代码给下个季度第一天的一个小小的变化:

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 

下面应该工作,提供您的date作为InDate参数;

 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