接受有效日期仅将用户在Excel VBA
在我最近的任务中,要求我接受用户的输入。一个输入值是出生日期,当然它必须是一个日期。
我正在做的是将输入存储在变量数据类型中。这使得代码没有错误,并且代码接受用户提供的任何值。下面是代码:
Dim dob As Variant dob = Application.InputBox("Enter Your Date of Birth")
当然,这是不正确的方法,因为用户可以输入任何可能不是有效日期的值。
我要使我的代码检测到任何无效的日期,并要求用户输入有效的日期并结束子例程。
这是允许用户仅输入有效日期作为输入的代码。
Sub check_date() Dim dob As Date On Error GoTo Errorhandler dob = Application.InputBox("Enter Your Date of Birth") On Error GoTo 0 Debug.Print dob Exit Sub Errorhandler: MsgBox "Please enter a valid date." End Sub
当您运行上面的代码时,它将要求您输入出生日期。如果输入的日期无效,它将要求您输入有效的日期并结束该过程。
How does it work?* The first and most important thing we have done is to use the Date type variable to store the expected date. Now, if you try to store a value that is not a valid date, it will through an error of “type mismatch”.
接下来,我们使用OnError Goto * error处理程序捕获此错误。
On Error GoTo Errorhandler dob = Application.InputBox("Enter Your Date of Birth") On Error GoTo 0
使用On Error,我们将控件跳转到标签Errorhandler,该标签位于End Sub语句之前。因此,要求用户输入一个有效的日期,该子步骤结束。
Errorhandler: MsgBox "Please enter a valid date." End Sub
如果用户输入了有效日期,则控件将正常流动并将输入保存在dob变量中。我们放置了Exit子语句,以便控件不会转到错误处理程序并在此结束过程。因此,将所有end语句放在exit sub之前。就是这样。
是的,这是您如何限制用户仅输入有效日期。
如果您对VBA日期或任何其他与Excel / VBA相关的查询有任何疑问,请告诉我。在下面的评论部分中问我们。
相关文章:
使用VBA插入日期时间戳记 |输入使用此VBA代码填充特定单元格时的时间戳。如果在A列中输入任何值,则B列中的相邻单元格将自动填充输入时间。
`link:/ excel-macros-and-vba-date-time-in-vb [VBA中的日期和时间] |在此页面上找到有关VBA中日期和时间的所有主题。
热门文章:
50 Excel快捷方式以提高生产率更快地完成任务。这50个快捷键将使您在Excel上的工作速度更快。
Excel中的VLOOKUP函数在Excel 2016中为COUNTIF使用此惊人的功能对条件进行计数。您无需过滤数据即可计算特定值。
Countif功能对于准备仪表板至关重要。
如何在Excel中使用SUMIF函数这是仪表板的另一个重要功能。这可以帮助您汇总特定条件下的值。