다음을 통해 공유


방법: Excel 범위에서 날짜 값 저장 및 검색

NamedRange 컨트롤이나 네이티브 Excel 범위 개체에 값을 저장하고 검색할 수 있습니다.

적용 대상: 이 항목의 정보는 Excel 2007 및 Excel 2010의 문서 수준 프로젝트 및 응용 프로그램 수준 프로젝트에 적용됩니다. 자세한 내용은 Office 응용 프로그램 및 프로젝트 형식에 따라 사용 가능한 기능을 참조하십시오.

1900년 1월 1일 또는 그 이후를 나타내는 날짜 값을 Visual Studio의 Office 개발 도구를 사용하여 범위에 저장하는 경우 날짜 값은 OA(OLE 자동화) 형식으로 저장됩니다. OA(OLE 자동화) 형식의 날짜 값을 검색하려면 FromOADate 메서드를 사용해야 합니다. 1900년 1월 1일 이전의 날짜는 문자열로 저장됩니다.

참고

1900년 1월과 2월의 경우에는 Excel 날짜가 OA 날짜와 다릅니다. 1904 날짜 체계 옵션이 선택된 경우에도 차이가 발생합니다. 코드 예제에서는 이러한 차이를 제대로 처리하지 않습니다.

NamedRange 컨트롤 사용

  • 이 예제는 문서 수준 사용자 지정을 위한 것입니다. 다음 코드는 ThisWorkbook 클래스가 아닌 시트 클래스에 배치해야 합니다.

명명된 범위에 날짜 값을 저장하려면

  1. A1 셀에 NamedRange 컨트롤을 만듭니다.

    Dim NamedRange1 As Microsoft.Office.Tools.Excel.NamedRange = _
        Me.Controls.AddNamedRange(Me.Range("A1"), "NamedRange1")
    
    Microsoft.Office.Tools.Excel.NamedRange NamedRange1 =
        this.Controls.AddNamedRange(this.get_Range("A1", missing), "NamedRange1");
    
  2. NamedRange1의 값으로 오늘 날짜를 설정합니다.

    Dim dt As DateTime = DateTime.Now
    NamedRange1.Value2 = dt
    
    DateTime dt = DateTime.Now;
    NamedRange1.Value2 = dt;
    

명명된 범위에서 날짜 값을 검색하려면

  • NamedRange1에서 날짜 값을 검색합니다.

    Dim value As Object = NamedRange1.Value2
    
    If Not value Is Nothing Then
        If TypeOf value Is Double Then
            dt = DateTime.FromOADate(CType(value, Double))
        Else
            DateTime.TryParse(CType(value, String), dt)
        End If
    End If
    
    MessageBox.Show(dt.ToString())
    
    object value = NamedRange1.Value2;
    
    if (value != null)
    {
        if (value is double)
        {
            dt = DateTime.FromOADate((double)value);
        }
        else
        {
            DateTime.TryParse((string)value, out dt);
        }
    }
    MessageBox.Show(dt.ToString());
    

네이티브 Excel 범위 사용

네이티브 Excel 범위 개체에 날짜 값을 저장하려면

  1. A1 셀을 나타내는 Range를 만듭니다.

    Dim rng As Excel.Range = Me.Application.Range("A1")
    
    Excel.Range rng = this.Application.get_Range("A1", missing);
    
  2. rng의 값으로 오늘 날짜를 설정합니다.

    Dim dt As DateTime = DateTime.Now
    rng.Value2 = dt
    
    DateTime dt = DateTime.Now;
    rng.Value2 = dt;
    

네이티브 Excel 범위 개체에서 날짜 값을 검색하려면

  • rng에서 날짜 값을 검색합니다.

    Dim value As Object = rng.Value2
    
    If Not value Is Nothing Then
        If TypeOf value Is Double Then
            dt = DateTime.FromOADate(CType(value, Double))
        Else
            DateTime.TryParse(CType(value, String), dt)
        End If
    End If
    System.Windows.Forms.MessageBox.Show(dt.ToString())
    
    object value = rng.Value2;
    
    if (value != null)
    {
        if (value is double)
        {
            dt = DateTime.FromOADate((double)value);
        }
        else
        {
            DateTime.TryParse((string)value, out dt);
        }
    }
    System.Windows.Forms.MessageBox.Show(dt.ToString());
    

참고 항목

작업

방법: 코드에서 워크시트 범위 참조

방법: 워크시트에 NamedRange 컨트롤 추가

개념

범위 작업

NamedRange 컨트롤

Office 솔루션의 선택적 매개 변수

기타 리소스

Excel 개체 모델 개요