Aracılığıyla paylaş


Nasıl yapılır: Program Aracılığıyla Excel Aralıklarında Veri Değerlerini Depolama ve Alma

NamedRange denetiminde veya yerel Excel aralık nesnesinde değerleri saklayabilir ve alabilirsiniz.

Uygulama alanı: Bu konudaki bilgiler Excel 2013 ve Excel 2010 uygulamalarının belge düzeyi projelerine ve uygulama düzeyi projelerine yöneliktir. Daha fazla bilgi için bkz. Office Uygulamalarında Kullanılabilir Özellikler ve Proje Türü.

Visual Studio Office geliştirme araçlarını kullanarak 1/1/1900 aralığı üstüne ve sonrasına düşen bir tarih değerini saklarsanız, OLE Otomasyonu (OA) biçiminde saklanır.OLE Otomasyonu (OA) tarihlerinin değerini almak için FromOADate yöntemini kullanmalısınız.Tarih 1/1/1900'dan önce ise dize olarak saklanır.

[!NOT]

Excel tarihleri 1900'un ilk iki ayı için OLE Otomasyon günlerinden farklılık gösterir.Aynı zamanda 1904 tarih sistemi seçeneği seçiliyse de farklar vardır.Aşağıdaki kod örnekleri bu farkları göstermez.

NamedRange Denetimini Kullanma

  • Bu örnek, belge düzeyi özelleştirmeleri içindir.Aşağıdaki kod sayfa sınıfında konumlandırılmalıdır, ThisWorkbook sınıfında değil.

Adlandırılmış aralıkta bir tarih değeri saklamak için

  1. A1 hücresinde NamedRange denetimi oluşturun.

    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"), "NamedRange1");
    
  2. Bügünün tarihini NamedRange1 için değer olarak ayarlayın.

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

Adlandırılmış aralıktan bir tarih değeri almak için

  • Tarih değerini NamedRange1'dan alın.

    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());
    

Yerel Excel Aralıklarını Kullanma

Tarih değerini yerel Excel range nesnesinde saklamak için

  1. A1 hücresini temsil eden Range oluşturun.

    Dim rng As Excel.Range = Me.Application.Range("A1")
    
    Excel.Range rng = this.Application.get_Range("A1");
    
  2. Bügünün tarihini rng için değer olarak ayarlayın.

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

Tarih değerini yerel Excel range nesnesinden almak için

  • Tarih değerini rng'den alın.

    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());
    

Ayrıca bkz.

Görevler

Nasıl yapılır: Koddaki Çalışma Sayfası Aralıklarına Program Aracılığıyla Bakma

Nasıl yapılır: çalışma sayfalarına NamedRange denetimleri ekleme

Kavramlar

Aralıklarla Çalışma

NamedRange Denetimi

Office Çözümlerinde İsteğe Bağlı Parametreler

Diğer Kaynaklar

Excel Nesne Modeline Genel Bakış