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.
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
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");
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
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");
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
Optionale Parameter in Office-Lösungen