Fügen Sie x-Zahl von Tagen zu einem Datum mit vba in excel
Ich bin tring zu fügen x Anzahl der Tage, um einen Langen Tag mit einem pop-up-box.
Public Function AskForDeadlinePlus4() As String
Dim strUserResponse As String
strUserResponse = InputBox("Enter Validuntil Date: Add # of Days To Survey end date")
strUserResponse = FormatDateTime(strUserResponse + I2, vbLongDate)
ActiveSheet.Cells(2, 10).Value = strUserResponse 'the 2, 10 is the cell reference for J2 - row 2, column 10.
End Function
Wo die Umfrage zu Ende-Datum in Zelle I2.
Wenn ich diesen starte, bekomme ich (Googeln, wie dies zu tun ich bin anstrengend)
4 + I2
(wo I2 = Friday, April 05, 2013
) >> Wednesday, January 03, 1900
natürlich brauche ich Tuesday, April 09, 2013
Dank
strUserResponse = FormatDateTime(DateAdd(d, strUserResponse, Range("I2")), vbLongDate)
- techonthenet.com/excel/formulas/dateadd.phpHallo Tim, ich habe versucht, Ihr sugention, bekomme ich die Fehlermeldung "Ungültiger Prozeduraufruf oder ungültiges argument" nicht sicher, wie fix ich bin, so nennen Sie diese am Ende der anderen sub, Call AskForDeadlinePlus4, die Werke in Ihrer ursprünglichen
Auch wenn ich
DateAdd(d, strUserResponse, Range("I2"))
zu DateAdd("d", strUserResponse, Range("I2"))
dann bekomme ich ein Datum Ausgabe "Mittwoch, 04 April 2012" +4 >> "Mittwoch, 03 Januar, 1900"InformationsquelleAutor xyz | 2013-04-28
Du musst angemeldet sein, um einen Kommentar abzugeben.
Haben Sie die
DateAdd
Funktion?myDate = CDate("d", CInt(strUserResponse, Range("I2"))
als strUserResponse ist die Anzahl der Tage hinzufügen, um die enthaltenen Daten in Zelle I2?Ein Datum gespeichert ist, als ein
long
Wert, also technisch ein Wert eingegeben wie1.5
würde nicht dazu führen, ein Fehler, aber alle nicht-numerischen Wert wie"steven"
würde einmismatch
Fehler. Für eine robuste Lösung, ja, letztlich müssen Sie einige Logik, um sicherzustellen, dass der Benutzer die Weitergabe der zulässigen Eingänge, aber das war nicht die Frage, die Sie gestellt 🙂Hallo, David, es gibt 2 Tim ' s hier ich derjenige bin, der die Frage gepostet. Wie füge ich die Ausgabe in Zelle J2 versuchte ich
ActiveSheet.Cells(2, 10).Value = myDate
aber ich bekomme das ursprüngliche Datum ohne die zusätzlichen Tage. Ich möchte die Anregung von den anderen Tim (als das war, was ich war tring zu sagen), aber das hat nicht funktioniert entweder. Wenn ichmyDate = CDate("d", CInt(strUserResponse, Range("I2"))
es wird rot und sagt "Kompilieren Fehler Erwartet:)" vielen Dank an Euch beideVersuchen
ActiveSheet.Cells(2,10).Value = DateAdd("d", numDays, myDate)
Danke David, die ich verwendet habe: ActiveSheet.Cells(2, 10).Value = FormatDateTime(DateAdd("d", numDays, myDate), vbLongDate)
InformationsquelleAutor David Zemens
Ich denke dieser code ist das, was Ihr nach der Verwendung der
DateAdd(<base e.g. Day = "D">, <number>, <date>)
Funktion:Nur ein paar Punkte, aber:
i = AskForDeadlinePlus4
ist seine Verwendung;=AskForDeadlinePlus4
; undWenn Sie möchten, verwenden Sie in VBA:
Wo hat es Fehler? Getestet, in Ordnung.
Sobald es zu laufen beginnt
InformationsquelleAutor glh
Statt mit DateAdd, das erfordert mehr eingeben, Sie können auch die DateValue. Folgende würde es tun.
Andere Lösung wäre mit der Konvertierung Funktion CDate.
InformationsquelleAutor ExcelinEfendisi