我写了一些代码,然后在消息框中使用这些代码来获取当前日期/时间,然后选择要添加到当前日期和时间的天数/小时/分钟,它就会弹出。
如果我只选择一天作为额外的一天,那就完美了,但当我选择一天零一小时的时候,它就增加了两天。如果我说1天1小时1分钟,那么它会在当前日期/时间上增加3天。
这是我的功能代码
Function HoursLost()
Dim Day As Date
Dim Hour As Date
Dim Minute As Date
Dim LValue As Date
LValue = Now
Day = InputBox("Enter Day ", "Enter Number of Days")
Hour = InputBox("Enter Hour", "Enter Number of Hours")
Minute = InputBox("Enter Minute", "Enter Number of Minutes")
HoursLost = Now + Day + Hour + Minute
End Function
这是我调用的代码
Option Explicit
Sub ShowDateSelection(control As IRibbonControl)
Dim strMsg As String, strTitle As String
Application.Calculate
strMsg = HoursLost()
strTitle = "The Future Date/Time Will Be:"
MsgBox strMsg, vbOKOnly, strTitle
End Sub
关于如何避开这个问题有什么建议吗?PS-我在自定义功能区中使用这个,因此功能区部分。
实现这一点的一种方法是使用DateAdd
函数。更换以下内容:
HoursLost = Now + Day + Hour + Minute
像这样的东西:
HoursLost = DateAdd("d", Day, Now)
HoursLost = DateAdd("h", Hour, HoursLost)
HoursLost = DateAdd("n", Minute, HoursLost)