VBA Excel : 입력 날짜에서 다음 분기를 출력하는 기능
문제
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
. 제휴하지 않습니다 StackOverflow