Freigeben über


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

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

Betrifft: Die Informationen in diesem Thema betreffen Projekte auf Dokument- und auf Anwendungsebene für Excel 2013 und Excel 2010. Weitere Informationen finden Sie unter Verfügbare Funktionen nach Office-Anwendung und Projekttyp.

Wenn Sie einen Datumswert, der auf den 1.1.1900 oder ein späteres Datum fällt, mit Office-Entwicklungstools in Visual Studio 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.

HinweisHinweis

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"), "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");
    
  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: Programmgesteuertes Verweisen auf Arbeitsblattbereiche im Code

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

Konzepte

Arbeiten mit Bereichen

NamedRange-Steuerelement

Optionale Parameter in Office-Lösungen

Weitere Ressourcen

Übersicht über das Excel-Objektmodell