J'essaie de déterminer la différence entre la date du système et la date stockée dans la feuille de calcul. Si la différence entre eux est> 30 jours, le résultat est vrai, sinon le résultat est faux Comment puis-je découvrir la différence entre la date du système et la date stockée dans le feuille de travail? La date dans la feuille de calcul peut également être une date passée. P> p>
3 Réponses :
Essayez ceci:
if CDate(Worksheets("dates").Cells(1,1)) - sDate > 30 then
CDATE (feuilles de calcul ("dates"). Les cellules (1,1)) donne une inadéquation de type!
@Ankur - Oh, SDate doit être une date également. Je vois que c'est une corde. En fait, si vous modifiez SDate à une date, vous n'avez peut-être pas besoin de la distribution de CDTE.
Je me demande pourquoi je vois rarement des gens à l'aide des fonctions de date.
Vous pouvez également utiliser ceci: p> Dans ce cas, date1 serait CDTE (Feuilles de calcul ( "Dates"). Cellules (1,1))
et date2 serait sdate (soit moulue avec CDate ou Dim'D comme une date à laquelle Jeff a dit. P> "D" signifie que nous obtenons la différence en jours. Voici les intervalles depuis des années, des mois, etc. . Dans VBA: P> yyyy - Year
q - Quarter
m - Month
y - Day of year
d - Day
w - Weekday
ww - Week
h - Hour
n - Minute
s - Second
sdate est une chaîne, ce qui n'est pas une date réelle!
Convertissez votre chaîne en une date à l'aide de la fonction CDate () ou de la fonction DateValue (). P>
Cependant, il y a une mise en garde dans ce type de conversion. Ces conversions géreront les structures suivantes: p> Et évitez d'utiliser une année à 2 chiffres. P> Je conseillerais à l'aide de la fonction DATERIAL () pour la conversion de la date. P> donc en ce qui concerne votre code, en supposant que les valeurs sur la feuille de yor sont En fait des dates (à être certain, sélectionnez simplement la colonne et modifiez le format de numéro en général. S'ils sont des dates réelles, chacun affichera un nombre pur. N'oubliez pas de frapper pour obtenir votre format de date) P> Dim result As Boolean
If Worksheets("dates").Cells(1, 1).Value - Date > 30 Then
result = True
Else
result = False
End If
Comment la valeur de date est-elle stockée dans la feuille de calcul? Ie 1 avr. 2010, 01/30/2010, etc.