Freigeben über


Programmgesteuertes Speichern und Abrufen von Datumswerten in Excel-Bereichen

Sie können Werte in einem NamedRange Steuerelement oder einem systemeigenen Excel-Bereichsobjekt speichern und abrufen.

Gilt für: Die Informationen in diesem Thema gelten für Projekte auf Dokumentebene und VSTO-Add-In-Projekte für Excel. Weitere Informationen finden Sie unter features available by Office-App lication and project type.

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

Hinweis

Excel-Datumsangaben unterscheiden sich von OLE-Automatisierungsterminen für die ersten beiden Monate von 1900. Es gibt auch Unterschiede, wenn die 1904-Datumssystemoption überprüft wird. In den folgenden Codebeispielen werden diese Unterschiede nicht behandelt.

Verwenden eines NamedRange-Steuerelements

  • Dieses Beispiel richtet sich an Anpassungen auf Dokumentebene. Der folgende Code muss in einer Blattklasse und nicht in der ThisWorkbook Klasse platziert werden.

So speichern Sie einen Datumswert in einem benannten Bereich

  1. Erstellen Sie ein NamedRange Steuerelement in Zelle A1.

    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.

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

So rufen Sie einen Datumswert aus einem benannten Bereich ab

  1. Abrufen des Datumswerts aus NamedRange1.

    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 nativer Excel-Bereiche

So speichern Sie einen Datumswert in einem systemeigenen Excel-Bereichsobjekt

  1. Erstellen Sie eine Range , die Zelle A1 darstellt.

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

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

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

  1. Abrufen des Datumswerts aus rng.

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