首页 > 解决方案 > 将天数和小时数添加到当前时间

问题描述

我编写了一些代码,然后在消息框中使用它来获取当前日期/时间,然后我选择添加到当前日期和时间的天数/小时/分钟,然后它会弹出。

如果我只选择一天作为额外的 1 天,它会完美运行,但当我选择 1 天和 1 小时时,它会在日期上增加 2 天。如果我说 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 - 我在自定义功能区中使用它,因此是功能区部分。

标签: excelvbaexcel-formula

解决方案


解决此问题的一种方法是使用该DateAdd功能。替换以下内容:

HoursLost = Now + Day + Hour + Minute

像这样:

HoursLost = DateAdd("d", Day, Now)
HoursLost = DateAdd("h", Hour, HoursLost)
HoursLost = DateAdd("n", Minute, HoursLost)

推荐阅读