Das habe ich nicht schreiben ursprünglich, weil ich glaubte, Wenn Sie eine Problemumgehung verwenden möchten, können Sie die folgende Funktion auf ähnliche Weise verwenden, als würden Sie eine CDate
verwenden, indem Sie ConDate("12/12/2016")
aufrufen.
Dies ist die Art, wie ich das Problem angesprochen:
Sub MainTest()
Dim InputString As String, OutputDate As Date
InputString = "01/12/2016"
OutputDate = ConDate(InputString)
Debug.Print OutputDate, TypeName(OutputDate)
End Sub
Function ConDate(ByRef InputString As String) As Date
Dim Day As Long, Month As Long, year As Long
'mmddyyyy format
Month = CLng(Left(InputString, InStr(1, InputString, "/", vbTextCompare) - 1))
Day = CLng(Mid(InputString, InStr(1, InputString, "/", vbTextCompare) + 1, InStrRev(InputString, "/", , vbTextCompare) - InStr(1, InputString, "/", vbTextCompare) - 1))
year = CLng(Right(InputString, 4))
ConDate = DateSerial(year, Month, Day)
End Function
Viele wollen nicht sebifeixler Antwort auf plagerise ich meine ursprüngliche links gehalten/Mitte/rechts den Tag/Monat/Jahr zu trennen, aber ich fühle es viel ist besser, seine Trennfunktion zu verwenden, um das Datum durch "/" zu trennen. Eine Kombination der beiden wäre ein guter Workaround.
Wie lauten die Regions-/Spracheinstellungen Ihres Mac? – Dai
Auch, welche Zeile erhalten Sie den Fehler auf und was ist die genaue Fehlermeldung? – Dai
Es ist auf US-Einstellungen –