Freigeben über


Gewusst wie: Speichern und Abrufen von Datumswerten in Excel-Bereichen

Aktualisiert: November 2007

Betrifft

Die Informationen in diesem Thema gelten nur für die angegebenen Visual Studio Tools for Office-Projekte und Versionen von Microsoft Office.

Projekttyp

  • Projekte auf Dokumentebene

  • Projekte auf Anwendungsebene

Microsoft Office-Version

  • Excel 2003

  • Excel 2007

Weitere Informationen finden Sie unter Verfügbare Features nach Anwendung und Projekttyp.

Werte können in einem NamedRange-Steuerelement oder einem systemeigenen Excel-Bereichsobjekt gespeichert oder abgerufen werden.

Wenn Sie einen Datumswert, der auf den 1.1.1900 oder ein späteres Datum fällt, mit Visual Studio Tools for Office in einem Bereich speichern, wird er im OLE-Automatisierungsformat (OA) gespeichert. Sie müssen die FromOADate-Methode verwenden, um den Wert von OLE-Automatisierungsdatumsangaben (OA) abzurufen. Wenn das Datum vor dem 1.1.1900 liegt, wird es als Zeichenfolge gespeichert.

Hinweis:

Datumsangaben in Excel unterscheiden sich von Datumsangaben für die OLE-Automatisierung bezüglich der ersten beiden Monate des Jahres 1900. Es treten auch Unterschiede auf, wenn die Option 1904-Datumswerte aktiviert ist. In den folgenden Codebeispielen werden diese Unterschiede nicht behandelt.

Verwenden eines NamedRange-Steuerelements

  • Dieses Beispiel bezieht sich auf Anpassungen auf Dokumentebene. Der folgende Code muss in eine Arbeitsblattklasse und nicht in die ThisWorkbook-Klasse eingefügt werden.

So speichern Sie einen Datumswert in einem benannten Bereich

  1. Erstellen Sie ein NamedRange-Steuerelement in der Zelle A1.

    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. Legen Sie das heutige Datum als Wert für NamedRange1 fest.

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

So rufen Sie einen Datumswert aus einem benannten Bereich ab

  • Rufen Sie den Datumswert von NamedRange1 ab.

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

Verwenden von systemeigenen Excel-Bereichen

So speichern Sie einen Datumswert in einem systemeigenen Excel-Bereichsobjekt

  1. Erstellen Sie einen Range, der die Zelle A1 darstellt.

    Dim rng As Excel.Range = Me.Application.Range("A1")
    
    Excel.Range rng = this.Application.get_Range("A1", missing);
    
  2. Legen Sie das heutige Datum als Wert für rng fest.

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

So rufen Sie einen Datumswert aus einem systemeigenen Excel-Bereichsobjekt ab

  • Rufen Sie den Datumswert von rng ab.

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

Siehe auch

Aufgaben

Gewusst wie: Senden von Werten an Arbeitsblattzellen

Gewusst wie: Verweisen auf Arbeitsblattbereiche im Code

Gewusst wie: Hinzufügen von NamedRange-Steuerelementen zu Arbeitsblättern

Konzepte

Arbeiten mit Bereichen

Übersicht über das Excel-Objektmodell

NamedRange-Steuerelement

Optionale Parametern in Office-Projektmappen