|
제가 올린 나이계산 VBA는 월, 일과 상관없이 연도에 따라서 나이가 계산됩니다.
예를들어 1992-07-12을 입력하면 07-12과는 상관없이 "2003"에서 "1992"을 뺀 "11"
이 계산되어 나옵니다.
혹시 이런 방식이 아닌 연, 월, 일이 계산되는 VBA를 짤 수 없는지.....
예를들어 1999-09-11이라면 오늘(2003-09-09)을 기준으로 지금은 "4"가 나오나
생일날짜가 지났기 때문에 "5"가 나오게 하는 방법은 없는지.......
예제를 올리겠습니다.
그럼 고수님들의 답변 기다리겠습니다.
==============[박신구님 글에 대한 답변입니다]==============
안녕하세요? 박신구 님!
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim i As Integer
Dim lngR As Long
With Target
i = .Column
lngR = .Row
If .Cells.Count >= 2 Then Exit Sub
If lngR = 1 Then Exit Sub
Application.EnableEvents = False
Select Case i
Case 2
Cells(lngR, 1).Value = lngR - 1 '번호
Case 5
If IsDate(.Value) Then
Cells(lngR, 6).Value = DateDiff("yyyy", .Value, Date) + (Date < DateSerial(Year(Date), Month(.Value), Day(.Value))) '나이
Else
Cells(lngR, 6).Value = Empty
End If
Case Else
End Select
Application.EnableEvents = True
End With
End Sub
나이를 구하는 루틴 한 줄을 아래와 같이 고치면 됩니다.
Cells(lngR, 6).Value = DateDiff("yyyy", .Value, Date) + (Date < DateSerial(Year(Date), Month(.Value), Day(.Value))) '나이
그럼...행운이 있으시길...! |
|