ポップアップボックスを使用して、長い日付にx日を追加しようとしています。
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
セルI2の調査終了日。
これを実行すると、(これを行う方法をグーグルで検索すると疲れます)
4 + I2
(どこ I2 = Friday, April 05, 2013
)>>Wednesday, January 03, 1900
もちろん必要ですTuesday, April 09, 2013
ありがとう
DateAdd
関数を使用しましたか?
Sub DateExample()
Dim strUserResponse As String '## capture the user input'
Dim myDate As Date '## the date you want to add to'
Dim numDays As Double '## The number of days you want to add'
strUserResponse = InputBox("Enter Validuntil Date: Add # of Days To Survey end date")
numDays = InputBox("How many days to add?")
myDate = CDate(strUserResponse)
MsgBox DateAdd("d", numDays, myDate)
End Sub
このコードは、DateAdd(<base e.g. Day = "D">, <number>, <date>)
関数を使用した後のものだと思います。
Public Function AskForDeadlinePlus4() As String
Dim strUserResponse As Date, iNumber As Long, rResponse As Variant
AskForDeadlinePlus4 = "" 'set default value
iNumber = CLng([I2])
rResponse = InputBox("Enter Validuntil Date: Add " & iNumber & " Day(s) To Survey end date")
If rResponse = False Then
'no value entered
Exit Function
ElseIf Not IsDate(rResponse) Then
'no date entered
Exit Function
Else
'valid date entered
strUserResponse = DateAdd("D", iNumber, CDate(rResponse))
End If
AskForDeadlinePlus4 = FormatDateTime(strUserResponse, vbLongDate)
End Function
ただし、いくつかのポイント:
i = AskForDeadlinePlus4
はその使用法です。=AskForDeadlinePlus4
;そしてVBAで使用する場合:
Sub GetInfo()
'the 2, 10 is the cell reference for J2 - row 2, column 10.
ActiveSheet.Cells(2, 10).Value = AskForDeadlinePlus4
End Sub
より多くの入力が必要なDateAddを使用する代わりに、DateValueを使用することもできます。以下はそれをします。
DateValue(strUserResponse )+I2
別の解決策は、変換関数CDateを使用することです。
CDate(strUserResponse )+I2