首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >由于时间输入格式不正确而导致运行时13错误

由于时间输入格式不正确而导致运行时13错误
EN

Stack Overflow用户
提问于 2020-01-17 11:02:37
回答 1查看 45关注 0票数 1

我的代码可以将输入的时间值移动到使用特定时间格式的字段中。但是,在输入时间时,如果没有以正确的格式输入时间,则用户会收到Runtime 13错误,然后除了关闭用户表单、停止代码运行并重试之外,将无法执行任何操作。我可以格式化一条消息以返回一个错误,告诉用户更正输入,但是我应该使用什么代码将用户放回到字段中并允许他们进行更正呢?我将这个用户表单文本框的代码放在这里以供参考:

代码语言:javascript
运行
复制
Private Sub txtDepartTime_AfterUpdate()
'When time is entered, time transfers immediately to spreadsheet datafield.

Dim TargetRow As Integer
TargetRow = Sheets("Codes").Range("D43").Value + 1

With Sheets("Travel Expense Voucher").Range("Data_Start").Offset(TargetRow, 25)
 .Value = TimeValue(txtDepartTime)
 .NumberFormat = "hh:mm" 'departure time

 End With

End Sub
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-01-17 11:45:31

首先测试txtDepartTime是否可以转换为时间。如果不能,则通知用户并退出执行,以便他们可以重新输入时间。

代码语言:javascript
运行
复制
Private Sub txtDepartTime_AfterUpdate()
'When time is entered, time transfers immediately to spreadsheet datafield.

Dim TargetRow As Integer, TestTime As Date

On Error Resume Next
TestTime = TimeValue(txtDepartTime)
On Error GoTo 0

If TestTime = 0 Then
    MsgBox "Time entered is not valid. Please try again.", vbExclamation
    Exit Sub
End If

TargetRow = Sheets("Codes").Range("D43").Value + 1

With Sheets("Travel Expense Voucher").Range("Data_Start").Offset(TargetRow, 25)
    .Value = TimeValue(txtDepartTime)
    .NumberFormat = "hh:mm" 'departure time
End With

End Sub

(此解决方案假设没有人会故意进入12am或00:00作为时间)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59780623

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档