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
Microsoft Office-Version
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
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");
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", missing);
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