현재 오프라인 상태입니다. 인터넷에 다시 연결하기를 기다리고 있습니다.

1900 Excel에서 1 1 전에 나이를 계산하는 방법

중요: 본 문서는 전문 번역가가 번역한 것이 아니라 Microsoft 기계 번역 소프트웨어로 번역한 것입니다. Microsoft는 번역가가 번역한 문서 및 기계 번역된 문서를 모두 제공하므로 Microsoft 기술 자료에 있는 모든 문서를 한글로 접할 수 있습니다. 그러나 기계 번역 문서가 항상 완벽한 것은 아닙니다. 따라서 기계 번역 문서에는 마치 외국인이 한국어로 말할 때 실수를 하는 것처럼 어휘, 구문 또는 문법에 오류가 있을 수 있습니다. Microsoft는 내용상의 오역 또는 Microsoft 고객이 이러한 오역을 사용함으로써 발생하는 부 정확성, 오류 또는 손해에 대해 책임을 지지 않습니다. Microsoft는 이러한 문제를 해결하기 위해 기계 번역 소프트웨어를 자주 업데이트하고 있습니다.

245104
요약
Microsoft Excel에서 날짜 수식을 날짜 사이에 입력한 경우에만 사용할 수 있지만 1 1900년 및 12/31/9999, 응용 프로그램 함수에 대한 사용자 지정 Microsoft Visual Basic 누군가가 또는 뭔가 년) 에서 먼저 1900년 1월 1일 전에 만든 나이를 계산할 수 있습니다.

back to the top

매크로를 사용하여 나이 계산

Microsoft는 묵시적인 보증 없이 목적으로만 프로그래밍 예제를 제공합니다. 이 포함되지만, 상품성 또는 특정 목적에의 적합성에 대한 묵시적인된 보증이 제한되지 않습니다. 이 문서에서는 만들려면 및 프로시저를 디버깅하는 데 사용되는 도구 및 여기서 설명하는 프로그래밍 언어에 익숙한 사용자를 대상으로 합니다. Microsoft 지원 엔지니어는 사용자에게 도움이 되도록 특정 절차에 대한 기능을 설명할 수 있지만 추가 기능을 제공하거나 특정 요구 사항에 맞도록 프로시저를 구성하지는 이 예제를 수정하지 않습니다.
Excel 1 1900년 이전 날짜가 텍스트로 입력됩니다. 이 함수는 1/1/0001로 시작하는 텍스트 입력한 날짜, 표준 날짜 및 수 사용할 때 시작 날짜를 1900 전에 있고 날짜 종료 후 1900 날짜 처리합니다. 매크로를 사용하려면 다음 이 단계를 수행하십시오.
  1. Excel을 시작하십시오. 함수를 사용하여 워크시트를 봅니다.
  2. Visual Basic Editor 전환하려면 Alt + F11 키를 누릅니다.
  3. 삽입 메뉴에서 모듈 을 클릭하십시오.
  4. 모듈에 다음 코드를 입력합니다:
    ' This is the initial function. It takes in a start date and an end date.Public Function AgeFunc(stdate As Variant, endate As Variant)        ' Dim our variables.    Dim stvar As String    Dim stmon As String    Dim stday As String    Dim styr As String    Dim endvar As String    Dim endmon As String    Dim endday As String    Dim endyr As String    Dim stmonf As Integer    Dim stdayf As Integer    Dim styrf As Integer    Dim endmonf As Integer    Dim enddayf As Integer    Dim endyrf As Integer    Dim years As Integer        ' This variable will be used to modify string length.    Dim fx As Integer    fx = 0        ' Calls custom function sfunc which runs the Search worksheet function    ' and returns the results.    ' Searches for the first "/" sign in the start date.    stvar = sfunc("/", stdate)        ' Parse the month and day from the start date.    stmon = Left(stdate, sfunc("/", stdate) - 1)    stday = Mid(stdate, stvar + 1, sfunc("/", stdate, sfunc("/", stdate) + 1) - stvar - 1)        ' Check the length of the day and month strings and modify the string     ' length variable.    If Len(stday) = 1 Then fx = fx + 1    If Len(stmon) = 2 Then fx = fx + 1        ' Parse the year, using information from the string length variable.    styr = Right(stdate, Len(stdate) - (sfunc("/", stdate) + 1) - stvar + fx)            ' Change the text values we obtained to integers for calculation     ' purposes.    stmonf = CInt(stmon)    stdayf = CInt(stday)    styrf = CInt(styr)        ' Check for valid date entries.    If stmonf < 1 Or stmonf > 12 Or stdayf < 1 Or stdayf > 31 Or styrf < 1 Then        AgeFunc = "Invalid Date"        Exit Function    End If    ' Reset the string length variable.    fx = 0        ' Parse the first "/" sign from the end date.    endvar = sfunc("/", endate)        ' Parse the month and day from the end date.    endmon = Left(endate, sfunc("/", endate) - 1)    endday = Mid(endate, endvar + 1, sfunc("/", endate, sfunc("/", endate) + 1) - endvar - 1)        ' Check the length of the day and month strings and modify the string     ' length variable.    If Len(endday) = 1 Then fx = fx + 1    If Len(endmon) = 2 Then fx = fx + 1        ' Parse the year, using information from the string length variable.    endyr = Right(endate, Len(endate) - (sfunc("/", endate) + 1) - endvar + fx)            ' Change the text values we obtained to integers for calculation     ' purposes.    endmonf = CInt(endmon)    enddayf = CInt(endday)    endyrf = CInt(endyr)        ' Check for valid date entries.    If endmonf < 1 Or endmonf > 12 Or enddayf < 1 Or enddayf > 31 Or endyrf < 1 Then        AgeFunc = "Invalid Date"        Exit Function    End If        ' Determine the initial number of years by subtracting the first and     ' second year.    years = endyrf - styrf        ' Look at the month and day values to make sure a full year has passed.     If stmonf > endmonf Then        years = years - 1    End If            If stmonf = endmonf And stdayf > enddayf Then        years = years - 1    End If    ' Make sure that we are not returning a negative number and, if not,     ' return the years.    If years < 0 Then        AgeFunc = "Invalid Date"    Else        AgeFunc = years    End If    End Function' This is a second function that the first will call.' It runs the Search worksheet function with arguments passed from AgeFunc.' It is used so that the code is easier to read.Public Function sfunc(x As Variant, y As Variant, Optional z As Variant)    sfunc = Application.WorksheetFunction.Search(x, y, z)End Function					
  5. 파일을 저장하십시오.
  6. 다음 데이터를 입력하십시오.
    A1   01/01/1887A2   02/02/1945						
    A3 셀에 다음 수식을 입력하십시오
    = AgeFunc(startdate,enddate)
    여기서 startdate 첫 번째 날짜 (A1) 셀 참조인 및 enddate 두 번째 날짜 (A2) 셀 참조입니다.

    결과는 58 합니다.
참고: 1 1900년 전에 모든 날짜에 대한 유효성 검사하십시오. 날짜를 입력한 텍스트 Excel에 의해 확인됩니다.

back to the top
참조
이 문서에 나와 있는 예제 코드를 사용하는 방법에 대한 자세한 내용은 아래 문서 번호를 눌러 Microsoft 기술 자료에 있는 문서를 클릭하십시오.
212536기술 자료 문서의 예제 코드를 실행하는 방법

back to the top
XL2000 xl2003 xl2007

경고: 이 문서는 자동 번역되었습니다

속성

문서 ID: 245104 - 마지막 검토: 01/25/2007 01:25:14 - 수정: 5.1

  • Microsoft Office Excel 2007
  • Microsoft Office Excel 2003
  • Microsoft Excel 2002 Standard Edition
  • Microsoft Excel 2000 Standard Edition
  • kbmt kbhowtomaster KB245104 KbMtko
피드백