J'essaye d'obtenir la date 4 jours plus vieux que maintenant. Voici mon codeVBA ne peut pas soustraire des jours de date
Sub calcdate()
Dim nDateTime, oDateTime As Date
nDateTime = Format(Now, "YYMMDD")
oDateTime = Format(DateAdd("d", -4, nDateTime), "YYMMDD")
MsgBox ("Today is " & nDateTime & " And OldDate is " & oDateTime)
End Sub
Mais la sortie est aujourd'hui est 170604 et OldDate est 02-10-3734”
moi avons essayé de le faire sans DateAdd
nDateTime = Format(Now, "YYMMDD")
oDateTime = nDateTime - 4
* La sortie est 'aujourd'hui est 170604 et 170604' est OldDate
J'ai essayé ces changements
nDateTime = Format(Now, "YYMMDD")
oDateTime = DateAdd("d", -4, nDateTime)
* La sortie est aujourd'hui est 170604 et OldDate est 31-01-2367 '
nDateTime = Format(Now, "YY-MM-DD")
oDateTime = Format(DateAdd("d", -4, nDateTime), "YY-MM-DD")
* La sortie est aujourd'hui est 17-06-04 et OldDate est 06.04.2013'
Donc, il semble ici qu'il soustrait des années bien que je mette "d".
dernière chose que j'ai essayé:
nDateTime = Format(Now, "DD-MM-YY")
oDateTime = Format(DateAdd("d", -4, nDateTime), "DD-MM-YY")
* La sortie est aujourd'hui est 6.4.17 et OldDate est 31-05-2017 ' je veux cette date, au format 170531, aussi pourquoi at-il donne moi 2017 alors que je choisis le format YY seulement?
cela a fonctionné, grâce @Absinthe 'Dim oDateTime As Date oDateTime = Maintenant - 4 MsgBox ("OldDate est" & Format (oDateTime, "YYMMDD")) ' Je sais que ce n'est peut-être pas optimal de cette façon, mais ce n'est pas le code original, je vais l'utiliser pour faire autre chose, donc c'est suffisant. à propos de la déclaration, je crois que je peux les déclarer ensemble comme dans mon code, je l'ai vérifié sur msdn, et il fonctionne de toute façon [https://msdn.microsoft.com/fr-fr/library/office/gg264241.aspx] –
@ i.fathy- dans VBA chaque déclaration de variable nécessite un type (sauf si vous voulez que ce soit Variant). Vous ne pouvez pas simplement mettre «Comme quelque chose» à la fin d'une liste de variables –
merci, mon mauvais, l'a obtenu. –