2016-03-29 12 views
-1

Ich möchte eine Eingabe Nachricht Antwort auf eine Zelle anzeigen, die mit CDate formatiert ist (TT/MM/JJJJ). Warum zeigt der Code die Fehlermeldung nicht an, wenn die Eingabe als TT/MM/JJ erfolgte? Das Programm akzeptiert es, aber die Ausgabe wird als JJ/MM/TT angezeigt.Datumsformat in VBA funktioniert nicht

unten ist der Code, den ich erstellt:

Sub inputSettlementDate() 

Dim varInputDate As Variant 
Dim lngERow As Long 


varInputDate = InputBox("Please enter the Settlement Date using this format dd/mm/yyyy.", "Settlement Date") 
If IsDate(varInputDate) Then 
    varInputDate = Format(CDate(varInputDate), "dd/mm/yyyy") 
    Else 
    MsgBox "Please enter a valid date format dd/mm/yyyy" 
End If 

If IsDate(varInputDate) Then 
    lngERow = Range("B" & Rows.Count).End(xlUp).Row + 1 
    Range("B" & lngERow).Value = varInputDate 
End If 
End Sub 

Antwort

0

Möglicherweise möchten Sie sicher, dass Spalte B hat ein Format als General machen, oder dass es keine yy/mm/dd Format haben. Ich habe Ihren Code in einer leeren Arbeitsmappe getestet, ohne etwas zu ändern, und es funktionierte einwandfrei.

+0

Hi ... Ich habe das Format auf Allgemein geändert, aber es ist immer noch dasselbe. Im Eingabefeld habe ich "24/3/16" anstelle von "24/3/2016" eingegeben. Ich dachte, es wird eine Fehlermeldung angezeigt, da das Format falsch ist. Ausgabe zeigt als "16/03/2024" .. – ArleneJ

+0

OK, zuerst einmal, etwas, das ich vorher nicht beantwortet hatte. Wenn Sie dd/mm/yy eingeben, wird die Zeile IsDate (varInputDate) dies immer noch als gültiges Datum auswerten und in die reguläre Verarbeitung übergehen, ohne dass ein Fehler angezeigt wird. Versuchen Sie es mit einer normalen Zeichenfolge wie "Hallo Welt" und Sie erhalten den Fehler. Zweitens erkennt CDate Datumsformate entsprechend der Gebietsschemaeinstellung Ihres Systems. Versuchen Sie, das zu entfernen. –

+0

es funktioniert! Es stellt sich heraus, dass nichts mit meinem Code falsch ist. Vielen Dank! – ArleneJ

Verwandte Themen