Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 1040|回复: 5

[已解决]关于VBA时间取临近前一个或后一个半小时的问题

[复制链接]
发表于 2021-9-13 16:05 | 显示全部楼层 |阅读模式
因为要做考勤计算,且时间比较零散,所以想要取打卡时间的临近前一个或后一个半小时,
比如,
9:20,我要取9:30,或9:00,
18:45,我要取19:00,或18:30
取前面,还是取后面,我有判断条件。如果刚好是30分,或整点的,就以30分或整点为准,不再另外取值。


但EXCEL中,只有取一个时间的整数时间数字。
研究了好久,也没有成功,求助各位大神

最佳答案
2021-9-13 16:11
祝順心,南無阿彌陀佛!

test.zip

6.46 KB, 下载次数: 2

发表于 2021-9-13 16:11 | 显示全部楼层    本楼为最佳答案   
祝順心,南無阿彌陀佛!

test.rar

6.54 KB, 下载次数: 6

回复

使用道具 举报

 楼主| 发表于 2021-9-13 16:16 | 显示全部楼层
是啊,还有这两个函数,忘记了,光想着专研时间类别的函数了。谢谢

评分

参与人数 1学分 +2 收起 理由
cutecpu + 2 不客气。祝顺心,南无阿弥陀佛!

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2021-9-13 17:25 | 显示全部楼层
cutecpu 发表于 2021-9-13 16:11
祝順心,南無阿彌陀佛!

再请教一下,我要用VBA来处理,因为一个单元格中有两个时间,所以我用left来截取,但结果总是错误

  1. myTimeS = Application.Text(Floor(Left(Range("C" & i).Offset(0, x), 5), 1 / 48), "[HH:MM]")
复制代码
能帮忙看看是何原因吗?

test2.zip

6.67 KB, 下载次数: 3

回复

使用道具 举报

发表于 2021-9-13 18:43 | 显示全部楼层
0102034 发表于 2021-9-13 17:25
再请教一下,我要用VBA来处理,因为一个单元格中有两个时间,所以我用left来截取,但结果总是错误

能 ...

您好,我用 B2 单元格为例子:

Sub demo()
   t1 = Format(Application.Floor(Left(Trim([b2]), 5), 1 / 48), "hh:mm")
   t2 = Format(Application.Floor(Right(Trim([b2]), 5), 1 / 48), "hh:mm")
End Sub


祝順心,南無阿彌陀佛!


回复

使用道具 举报

 楼主| 发表于 2021-9-13 18:54 | 显示全部楼层
cutecpu 发表于 2021-9-13 18:43
您好,我用 B2 单元格为例子:

Sub demo()

明白了,主要是vba中,没有text,要用format,感谢

评分

参与人数 1学分 +2 收起 理由
cutecpu + 2 不客气。祝顺心,南无阿弥陀佛!

查看全部评分

回复

使用道具 举报

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

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-3-29 03:30 , Processed in 0.279648 second(s), 11 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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