ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 729|回复: 12

[求助] 请问一下,如何防止输入错误的时间格式?

[复制链接]

TA的精华主题

TA的得分主题

发表于 2023-5-25 10:44 | 显示全部楼层 |阅读模式
请看附件里的描述,谢谢。

时间格式.zip

14.57 KB, 下载次数: 13

TA的精华主题

TA的得分主题

发表于 2023-5-25 11:43 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-5-25 11:50 | 显示全部楼层
suntao2000 发表于 2023-5-25 11:43
你想变成什么样的呢?

意思就是输入数字后,变成一个时间。数字长度禁止输入4位以上。

当然我的想法可能有瑕疵,或是不足地方,大概的意思就这样的。


输入一个数字 和 两个数字 = 分钟。(禁止大于 60)
例如:
20 = 00:20
1   = 00:01


输入三个数字 = 小时+分钟。(后两位等于分钟,禁止大于60)
例如:
520 = 05:20
123 = 01:23

855 = 08:55



输入四个数字 = 小时+分钟。(前两位和后两位,禁止大于60)
例如:
1520 = 15:20
1123 = 11:23

1855 = 18:55


TA的精华主题

TA的得分主题

发表于 2023-5-25 12:14 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
Private Sub Worksheet_Change(ByVal Target As Range)
    Target.NumberFormat = "00:00"
End Sub

TA的精华主题

TA的得分主题

发表于 2023-5-25 12:15 | 显示全部楼层
本帖最后由 suntao2000 于 2023-5-25 14:47 编辑

你这样说肯定是有输入错的时候,你是想在输错的时候禁止录入并提示吗,还是输错后变成正确的如1260 变成13:00, 5555变成 07:55

TA的精华主题

TA的得分主题

发表于 2023-5-25 13:17 | 显示全部楼层
附件内容供参考,细节楼主自行修正吧

时间格式.zip

14.04 KB, 下载次数: 2

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-5-25 16:17 | 显示全部楼层
liulang0808 发表于 2023-5-25 13:17
附件内容供参考,细节楼主自行修正吧

版主,我按你的代码修改了一下,效果不错,但是有两个小问题,不知可否看看。

时间格式22.zip

34.16 KB, 下载次数: 5

TA的精华主题

TA的得分主题

发表于 2023-5-25 16:32 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
马小呆 发表于 2023-5-25 16:17
版主,我按你的代码修改了一下,效果不错,但是有两个小问题,不知可否看看。

If Len(字符) = 4 And Left(字符, 2) > 23 Or Right(字符, 2) > 59 Then,你前两位是不能大于24的,改为If Len(字符) = 4 And Left(字符, 2) > 59 Or Right(字符, 2) > 59 Then最大可输入5959

TA的精华主题

TA的得分主题

发表于 2023-5-25 17:53 | 显示全部楼层
本帖最后由 micch 于 2023-5-25 17:55 编辑
  1. if format(x,"0000") like "[01][0-9][0-5][0-9]"  or format(x,"0000") like "2[0-4][0-5][0-9]"  then
复制代码

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-5-25 19:30 | 显示全部楼层
dzsrmyh 发表于 2023-5-25 16:32
If Len(字符) = 4 And Left(字符, 2) > 23 Or Right(字符, 2) > 59 Then,你前两位是不能大于24的,改为I ...

谢谢提醒,我只需要输入时和分。最大也就是23:59。最小00:01

您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-16 05:58 , Processed in 0.041872 second(s), 14 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表