VBA Excel:入力日から次の四半期を出力する機能
質問
私はExcelのためにVBAで働いており、Excel変換日の形式である日付を入力できる関数の使用を必要としています(40736など)。四半期の入力日の直後の四半期の日付を、四半期が1月1日、4月1日、7月1日、および10月1日の順に出力されます。 例として:私の入力は40736(2011年7月12日に対応するExcel日付です。 私の出力が201111001になるのを望み、次の四半期に対応しています。
戦略や述べられているコードの人々の援助や、指示されたコードの援助が大きくなるように、これにアプローチする方法はわかりません。ありがとう
解決
これはMartinのコードのわずかな変動です。 next quarter:
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
. 所属していません StackOverflow