vba: Datum-Funktion liefert "00:00:00"
Meinem code unten liefert "00:00:00", wenn der übergebene Wert "DateValue" null
vba:
Public Function forDate(ByVal DateValue As String) As Date
Dim DoDate As Date
If Not IsNull(DateValue) And DateValue <> "" Then
DoDate = CDate(FormatDateTime(DateValue, 1, 10))
forDate = DoDate
End If
End Function
Zu behandeln, wie wenn "DateValue" null ist???
bitte deuten auf eine Antwort.
Wie bereits geschrieben, ist Ihre Funktion nicht definiert einen Rückgabewert für den Fall, dass Sie wollen - Sie benötigen mindestens ein 'else' - Anweisung?,,,
Meinst du, wenn DateValue ist Null-oder meinst du, wenn der Wert der Variablen DateValue ist die vier Briefe Wort "Null" ?
variable den Wert "Null".
Warum nicht Sie überprüfen die
Weil Sie dimetioned DateValue als String (
Meinst du, wenn DateValue ist Null-oder meinst du, wenn der Wert der Variablen DateValue ist die vier Briefe Wort "Null" ?
variable den Wert "Null".
Warum nicht Sie überprüfen die
DateValue
String vor dem Aufruf der Funktion? Das bedeutet, dass Sie diese Funktion aufrufen, die in einer Funktion. Wenn der Wert NULL ist Sie wieder leer-string ist, sonst können Sie wieder die date
- format..Weil Sie dimetioned DateValue als String (
ByVal DateValue As String
), Sie können NICHT übergeben Sie Null als argument. Wenn Sie versuchen, VBA wird ein Fehler ausgelöst und die Funktion wird NICHT evaluaterd.InformationsquelleAutor user2002774 | 2013-02-27
Du musst angemeldet sein, um einen Kommentar abzugeben.
Einstellung ein
Date
zu null gültig ist (d.h. es wird ohne Fehler ausgeführt), vorausgesetzt, Sie verwendenvbNull
und nichtNull
. Obwohl es zurück#12/31/1899#
und nichtnull
selbst. Sie können überprüfen Sie die date-variable vor, die bekannte null-Wert höher als Ihre pseudo-null-Wert.Oder Sie können legen Sie es auf das minimum Datum
DateSerial(100, 1, 1)
wird wieder#1/1/100#
vbNull
ist nicht das gleiche wie "Null".vbNull
ist eine VBA-interne Konstante mit dem Wert 1.du hast Recht! (irgendwie irreführend...) sowie dann die DateSerial-option ist vielleicht das beste, wenn er darauf besteht auf die Rückgabe eines
Date
InformationsquelleAutor Brad
Wird dies behandeln von null-und/oder leere Zeichenfolgen:
Hinweis habe ich entfernt, die Definitionen der Variablen zu NULL werden richtig übergeben. wenn verwendet, wie eine Funktion in einer Tabellenkalkulation die Funktion zurückgeben
#VALUE!
Fehler, wenn ein string, der dargestellt werden kann als ein Datum übergeben wirdBeispiel Ergebnisse:
InformationsquelleAutor SeanC
Ich denke die Lösung könnte sein, zu erklären, dass die Funktion einen variant-parameter|
Wenn VBA wandelt NULL in einen String, es ist nicht mehr NULL...
InformationsquelleAutor Floris
Siehe die Kommentare für die Lösung
Stellen Sie sicher, dass Ihre Funktion akzeptiert null und gibt null zurück,...es funktionieren würde.
Sie können nicht verwenden
=
zuordnen, NULL - Sie müssenSet
. Nicht sicher, können Sie Datum einstellen, auf Null, obwohl...hat es funktioniert für Sie ??????
InformationsquelleAutor