VBA Excel: функция для вывода следующего квартала от даты ввода
Вопрос
Я работаю в VBA для Excel и понадобится использовать функцию, которую я могу ввести дату, которая находится в формате преобразованной даты Excel (например, 40736).И вывод дата четверти сразу после входной даты в формате Yyymmdd, где четверти - 1 января, 1 апреля, 1 июля, а также 1. Все расчеты должны быть выполнены в VBA, а не на листе. В качестве примера: мой вклад может быть 40736 (дата Excel, которая соответствует 7/12/2011. Я хотел бы, чтобы мой выход был 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
.