Von Makro geliefertes Datum liegt vier Jahre vor aktuellem Datum

Dieser Artikel wurde zuvor veröffentlicht unter D41163
Dieser Artikel wurde archiviert. Er wird im vorliegenden Zustand bereitgestellt und nicht mehr aktualisiert.
Dieser Artikel ist eine Übersetzung des folgenden englischsprachigen Artikels der Microsoft Knowledge Base:
213593 XL2000: Date Returned in a Macro Is Four Years Too Early
Problembeschreibung
Wenn Sie ein Makro ausführen, das ein Datum aus einer Zelle eines Arbeitsblattes verwendet, liegt das vom Makro zurückgegebene Datum möglicherweise vier Jahre und einen Tag vor dem aktuellen Datum.
Ursache
Ein Makro gibt ein Datum zurück, das vier Jahre und einen Tag vor dem aktuellen Datum liegt, wenn Sie auf der Registerkarte BERECHNUNG des Dialogfeldes OPTIONEN das 1904-Datumssystem auswählen und eine der folgenden Bedingungen zutrifft:
  • Das Makro verwendet die Wert2-Eigenschaft, wenn es das Datum speichert.
       -oder-
  • Das Makro verwendet eine Funktion in der Microsoft Excel-Anwendungsbibliothek, wenn es das Datum speichert.
Umgehungsmöglichkeit:
Das folgende Makro ermittelt, ob das 1904-Datumssystem ausgewählt wurde. Es konvertiert das Datum in das 1900-Datumssystem und gibt das erwartete Datum zurück.

Die Verwendung der hier aufgeführten Information, Makro- oder Programmcodes geschieht auf Ihre eigene Verantwortung. Microsoft stellt Ihnen diese Informationen, sowie Makro- und Programmlistings ohne Gewähr auf Richtigkeit, Vollständigkeit und/oder Funktionalität, sowie ohne Anspruch auf Support zur Verfügung. Bei Makro- und Programmlistings soll lediglich exemplarisch die Funktionsweise des Beispiels aufgezeigt werden.: Für weitere Informationen zu der Unterstützung, die Microsoft Ihnen bietet, siehe die folgende Seite im World Wide Web:
   http://www.microsoft.com/mcsp/
Weitere Informationen zu den Support-Optionen, die bei Microsoft verfügbar sind, finden Sie auf der folgenden Seite im World Wide Web:
   http://www.microsoft.com/support/supportnet/overview/overview.asp
So verwenden Sie das Makro:
  1. Zum Einfügen einer neuen Arbeitsmappe klicken Sie im Menü DATEI auf NEU. Klicken Sie anschließend auf ARBEITSMAPPE und auf OK.
  2. Klicken Sie im Menü EXTRAS auf OPTIONEN. Klicken Sie auf die Registerkarte Berechnung, und klicken Sie anschließend auf 1904-DATUMSSYSTEM. Klicken Sie auf OK.
  3. Geben Sie die folgenden Datumsangaben in Blatt1 ein:
          A1: 5.7.96      A2: 11.5.96      A3: 28.4.96
  4. Zeigen Sie im Menü EXTRAS auf MAKRO, und klicken Sie auf VISUAL BASIC-EDITOR. Klicken Sie im Menü EINFÜGEN des Visual Basic-Editors auf MODUL.
  5. Geben Sie den folgenden Code im Modulfenster ein:
             Sub DateTest()            'Datumsvariable dimensionieren            Dim dDate As Date
                'Kleinstes Datum im Bereich in Variable speichern            dDate = Application.Min(Worksheets(1).Range("A1:A3"))
                'Gespeichertes Datum anzeigen            MsgBox "Stored date" & Chr(13) & dDate
                'Auf 1904-Datumssystem überprüfen            If Application.ThisWorkbook.Date1904 Then
                 '1904-Basisdatum in 1900-Basisdatum konvertieren             dDate = DateSerial(Year(dDate) + 4, Month(dDate), Day(dDate) + 1)
                 'Konvertiertes Datum anzeigen               MsgBox "Converted date" & Chr(13) & dDate
                Else               MsgBox "1904-Datumssystem ist nicht aktiviert"            End If         End Sub
  6. Zum Ausführen des Makros zeigen Sie im Menü EXTRAS auf MAKRO. Klicken Sie auf MAKROS. Wählen Sie das Makro DateTest, und klicken Sie auf AUSFÜHREN.
Das erste Dialogfeld erscheint mit dem Datum 27.4.92, das vier Jahre und einen Tag vor dem frühesten Datum im Zellbereich von A1 bis A3 liegt. Im zweiten Dialogfeld wird das korrekte, d.h. "konvertierte" Datum, der 28.4.96, angezeigt.
Status
Microsoft hat bestätigt, dass es sich dabei um ein Problem bei den Microsoft-Produkten handelt, die zu Beginn dieses Artikels aufgeführt sind.
Weitere Informationen
Visual Basic für Applikationen erkennt das 1904-Datumssystem nicht automatisch und konvertiert das Datum daher nicht wie erforderlich. Wenn ein Benutzer das 1904-Datumssystem in Microsoft Excel auswählt und ein Makro ausführt, das ein Datum aus einer Zelle eines Arbeitsblatts liest, kann die Differenz vier Jahre und einen Tag betragen (der zusätzliche Tag steht für das Schaltjahr). Beispielsweise wird für das Datum 1.9.96 im 1904-Datumssystem das Datum 31.8.92 zurückgegeben.

Diese Abweichung der Datumswerte kann in Visual Basic auftreten, wenn Sie das 1904-Datumssystem auswählen und das Makro beim Speichern des Datums die Wert2-Eigenschaft verwendet.

Bitte beachten Sie: Bei diesem Artikel handelt es sich um eine Übersetzung aus dem Englischen. Es ist möglich, dass nachträgliche Änderungen bzw. Ergänzungen im englischen Originalartikel in dieser Übersetzung nicht berücksichtigt sind. Die in diesem Artikel enthaltenen Informationen basieren auf der/den englischsprachigen Produktversion(en). Die Richtigkeit dieser Informationen in Zusammenhang mit anderssprachigen Produktversionen wurde im Rahmen dieser Übersetzung nicht getestet. Microsoft stellt diese Informationen ohne Gewähr für Richtigkeit bzw. Funktionalität zur Verfügung und übernimmt auch keine Gewährleistung bezüglich der Vollständigkeit oder Richtigkeit der Übersetzung.

kbprogramming
Eigenschaften

Artikelnummer: 213593 – Letzte Überarbeitung: 02/09/2014 17:07:34 – Revision: 3.1

Microsoft Excel 2000 Standard Edition, Microsoft Visual Basic for Applications 6.0

  • kbnosurvey kbarchive kbprogramming KB213593
Feedback