ActiveCell.Value = 时间 vba(无秒)

ActiveCell.Value = 时间 vba(无秒)

我有一个“时间表”宏,用于员工上班打卡和下班打卡。我的宏是这样的:

ActiveCell.Value = Time
ActiveCell.NumberFormat = "h:mm AM/PM"

它运行良好,仅显示为“7:30 AM”,例如,但在编辑字段中,有秒数,如果秒数不一致,这会使移位时间(公式 =IF(OR(C2="",F2=""),"",((F2-C2)-(E2-D2))*24)) 偏离一分钟,但我们不支付秒数,只支付分钟数。有没有办法修改只捕获小时和分钟的宏。格式化不能纠正它。我同意它每次都返回“7:30:00 AM”而不是实际秒数。谢谢!

答案1

四舍五入到最接近的分钟:

 ActiveCell.Value = Int(Time * 24 * 60) / (24 * 60)

或者

ActiveCell.Value = TimeSerial(Hour(Time),Minute(Time),0)

答案2

你也可以尝试这个:

ActiveCell.Value = Format(range("D2"), "HH:MM")

笔记,单元格D2中有一个公式,用于计算您在上面的问题中显示的时间。

或者 代替活动单元您也可以使用以下内容:

Selection.NumberFormat = "h:mm"
Range("E327").NumberFormat = "hh:mm"

相关内容