나눔터  
  HOME > 나눔터 > 묻고답하기 > 엑셀
엑셀
엑셀에 대한 질문과 답변을 올려주세요. 단, 취지에 맞지 않는 글은 운영자가 삭제합니다.
 "000 님, 도와주세요", "부탁 드립니다.", "급합니다!" 등과 같이 막연한 제목을 달지 말아주세요.
[필독] 빠르고 정확한 답변을 얻는 16가지 Tip !
[필독] 저작권법 개정에 따른 이용안내
작성자:  

 황기성 (latinum)

추천:  2
파일:     조회:  1568
제목:   [RE]생일이 지나도 변하지 않는 나이구하기 VBA로....
     
  제가 올린 나이계산 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))) '나이

그럼...행운이 있으시길...!
 
[불량 게시물 신고]  
박신구감사합니다.

추석때 고민하던 체증이 쫙 빠진 기분입니다.
09-16 (14:28)
삭제 ■신고
        
  

작성일 : 2003-09-16(11:56)
최종수정일 : 2003-09-16(11:56)
 


 ◎ 관련글

  제 목   작성자   날짜
생일이 지나도 변하지 않는 나이구하기 VBA로.... 박신구 2003-09-16
[RE]생일이 지나도 변하지 않는 나이구하기 VBA로.... 황기성 2003-09-16