Freigeben über

Excel CDate Fehlermeldung

Anonym
2017-01-24T18:16:59+00:00

Hallo liebe Community,

in meinem VBA Excel-Makro erhalte ich die Meldung "type mismatch" beim Konvertieren des Strings in einen Variant, wenn ich bei meinem Kollegen folgenden Code ausführe (unter einem OS X (Yosemite) Excel mit US Region / Datumseinstellungen):

Function ReformatDate() as Variant

   Dim strOriginalDate as String

   Dim vReformatDate as Variant

   strOriginalDate = "1/11/2017"

   ReformatDate = CDate(strOriginalDate)

End Function

Auf einem deutschen OS X System mit deutschem Excel funktioniert der Code. Ich dachte, die Conversion ist regionsunabhängig?!

Microsoft 365 und Office | Excel | Für Zuhause | Windows

Gesperrte Frage. Diese Frage wurde aus der Microsoft-Support-Community migriert. Sie können darüber abstimmen, ob sie hilfreich ist, aber Sie können keine Kommentare oder Antworten hinzufügen oder der Frage folgen.

0 Kommentare Keine Kommentare

Antwort, die vom Frageautor angenommen wurde

Andreas Killer 144.1K Zuverlässigkeitspunkte Freiwilliger Moderator
2017-01-24T19:17:04+00:00

Ich dachte, die Conversion ist regionsunabhängig?!

Nein, CDate ist im Gegenteil an die Region gebunden:

CDate erkennt alle Datumsformate, die im Gebietsschema des Systems ausgewählt werden können. Die richtige Reihenfolge von Tag, Monat und Jahr kann nicht immer bestimmt werden, wenn sich das Datumsformat von den im Gebietsschema verfügbaren Formaten unterscheidet.

Du solltest vor dem Aufruf von CDate mit IsDate prüfen ob sich der String in ein Datum umwandeln läßt.

Allerdings sieht der String nicht ungewöhnlich aus und geht bei mir auf englischen Maschinen (auch Mac).

Könnte also sein das der Kollege da etwas unerwartetes in seinem System eingestellt hat... wie / wo kann ich nicht sagen, ich bin kein Experte für Mac.

Andreas.

War diese Antwort hilfreich?

0 Kommentare Keine Kommentare

2 zusätzliche Antworten

Sortieren nach: Am hilfreichsten
  1. Anonym
    2017-01-25T08:52:02+00:00

    Vielen Dank, Andreas.

    Ich werde das mit der Prüfung (IsDate) mit meinem Kollegen ausprobieren.

    Leider kenne ich mich mit dem Mac nicht sonderlich gut aus, bei den Datumsformaten gibt es aber immer wieder Schwierigkeiten / Besonderheiten unabhängig vom Betriebssystem.

    War diese Antwort hilfreich?

    0 Kommentare Keine Kommentare
  2. Anonym
    2017-01-24T18:47:40+00:00

    Hallo liebe Community,

    in meinem VBA Excel-Makro erhalte ich die Meldung "type mismatch" beim Konvertieren des Strings in einen Variant, wenn ich bei meinem Kollegen folgenden Code ausführe (unter einem OS X (Yosemite) Excel mit US Region / Datumseinstellungen):

    Function ReformatDate() as Variant

       Dim strOriginalDate as String

       Dim vReformatDate as Variant

       strOriginalDate = "1/11/2017"

       ReformatDate = CDate(strOriginalDate)

    End Function

    Auf einem deutschen OS X System mit deutschem Excel funktioniert der Code. Ich dachte, die Conversion ist regionsunabhängig?!

    War diese Antwort hilfreich?

    0 Kommentare Keine Kommentare