문제

vba에서 엑셀을 위해 일하고 Excel 변환 된 날짜 (예 : 40736) 형식의 날짜를 입력 할 수있는 기능을 사용할 필요가 있습니다.yyymmdd 형식의 입력 날짜, 4 월 1 일, 7 월 1 일, 10 월 1 일, 모든 계산은 워크 시트가 아닌 VBA에서 수행해야합니다. 예를 들어 : 내 입력은 40736 (7/12/2011에 해당하는 Excel 날짜) 일 수 있습니다. 내 산출물이 다음 분기에 해당하는 20111001이됩니다.

나는 정말로 이것을 어떻게 접근하는지 확신하지 못합니다. 그래서 어떤 도움을 받아야하는 어떤 도움이나 제안 된 코드가 훌륭합니다.감사합니다

도움이 되었습니까?

해결책

여기에 다음 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
.

다른 팁

아래가 작동해야하며, 당신의 날짜를 인수 인수로 제공하십시오.

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