|
- Sub test()
- Dim rg As Range, cel As Range
- Const ADD_HOUR As Double = 24 '自定义增加的小时数为常量,单位小时
- With Sheets(1) '限定对象范围为表1
- Set rg = .Range("A2:A" & .Cells(Rows.Count, 1).End(3).Row) '取得表1的A列的有效数据的单元格区域(A2至A列最后非空行[A12]),并将A2:A12单元格区域赋值给对象rg
- End With
-
- rg.Interior.Color = xlNone 'rg范围填充色初始化,清除原先填充的颜色
- For Each cel In rg '从A2开始往下遍历单元格至A12
- cel.Offset(, 1) = cel.Value + ADD_HOUR / 24 'A列右偏移一格(即B列)的值=A列值+(ADD_HOUR / 24)
- '这里(ADD_HOUR / 24)将小时转化为天数,因日期和时间的本质均为序列数(整数部分为日期序列数,小数部分为时间序列数),可直接计算。
- '如A2单元格格式切换为常规后的实际值为44898.9291666667,序列数44898代表2022年12月3日,后面的小数序列数代表时间22:18:00
- If Hour(cel.Offset(, 1)) <= 12 Then cel.Offset(, 1).Interior.Color = vbRed '判断,Hour(cel.Offset(, 1))取得B列序列数中的小时数
- If InStr(cel.Offset(, 2), "四班") Then cel.Offset(, 2).Interior.Color = vbBlue '判断,InStr函数在cel.Offset(, 2)【C列】查找"四班"
- Next
-
- End Sub
复制代码 |
评分
-
1
查看全部评分
-
|