2017-01-12 3 views
0

Hallo der Code, den ich hatte arbeitete bis das neue Jahr und dann denke ich, wenn es Dezember 2016 mit Jan 1 Daten durch Verwendung von String und nicht date Objekte hatte ich ein Problem hatte. Ist das richtig oder ist es die Logik, die ich verwende, und gibt es einen besseren Weg, dies zu tun?Vergleichen Sie drei Termine in VBA

Dim MAX_DATE As String 
MAX_DATE = Format(Now, "mmddyy") 
Dim MIN_DATE As String 
MIN_DATE = Format(Now - 20, "mmddyy") 
If Not objP.CollDateFormat >= MIN_DATE And objP.CollDateFormat <= MAX_DATE Then 
      Dim szMessage As String 
      szMessage = "Collection Date is in the past" 

    Exit Function 
End If 
+1

Es gibt ein paar Probleme mit Ihrer Frage. Sie geben nicht die Dimensionierung der Variablen 'objP' an, also haben wir keine Ahnung, womit sie verknüpft ist. Die Funktion ist nicht vollständig (Sie haben 'Exit Function', was anzeigen würde, dass dies ein Teil einer Funktion ist. Auch welche Bibliothek ist' CollDateFormat' von? –

Antwort

0

Dies funktioniert zu vergleichen, wenn ein Datum innerhalb eines Tages von vor 20 Tagen bis heute ist.

Option Explicit 

Sub ff() 

    Dim SomeDate As Date 
    'Here you will insert the code for the actual date 
    'or just change the SomeDate text in the if statement to you objP.CollDateFormat 
    SomeDate = DateSerial(2016, 12, 30) 



    Dim MAX_DATE As Date 
    MAX_DATE = Now 
    Dim MIN_DATE As Date 
    MIN_DATE = Now - TimeSerial(480, 0, 0) '480 hours is 20 days 


    If Not SomeDate >= MIN_DATE And SomeDate <= MAX_DATE Then 
     Dim szMessage As String 
     szMessage = "Collection Date is in the past" 
     'Exit Function 
    End If 


End Sub 
+0

Ich hatte Probleme damit, als das Mindestdatum im Dezember 2016 war und das Max-Datum war in Jan ist es mit dem DateSerial Objekt verwandt? –

+0

@ THOMASJ.Mcdevitt Der Code, den ich eingefügt habe, funktioniert tadellos mit dem 'SomeDate', der im Dezember ist. Wenn Sie den Code jetzt ausführen, ist das' MAX_DATE' 2017/01/13 und das 'MIN_DATE' wird 2016/12/24 sein, was genau das ist, wo du sagst, dass das Problem ist, also bin ich mir nicht sicher, wie ich weiter helfen kann, wenn du es nicht besser erklärst. –

Verwandte Themen