VBA Excel: функция для вывода следующего квартала от даты ввода

StackOverflow https://stackoverflow.com//questions/25085885

  •  02-01-2020
  •  | 
  •  

Вопрос

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

Я действительно не уверен, как даже приблизиться к этому, поэтому любая помощь с стратегиями или предлагаемыми посудами кода будет великолепна.Спасибо

Это было полезно?

Решение

Вот небольшое изменение кода Martin, чтобы дать первый день Next квартал:

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
.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top