|
本帖最后由 banditson 于 2018-8-5 16:56 编辑
运行到LOOKUP时返回值出错,愿意是d里面有且值等于"SC08"时进入第一个LOOKUP,按以下运行后E列返回"#VALUE!",把时间加双引后运行返回"#NAME?",是不是时间不能这样对比?请高手赐教。谢谢!!!!!!(D列都是时分秒时间值,自定义格式为hh":"mm,如12:56:40显示为12:56)。
For r = er To 2 Step -1
刷卡时间 = Format(Range("d" & r), "hh:mm")
Dim d
Set d = CreateObject("Scripting.Dictionary")
ar = Sheets("基础资料").[a1].CurrentRegion
For i = 2 To UBound(ar)
d(ar(i, 1)) = d(ar(i, 1)) + ar(i, 5)
Next
With Sheets("数据")
arr = .[a1].CurrentRegion
For i = 2 To UBound(arr)
If d.exists(arr(i, 1)) And d(.Cells(i, 1).Value) = "SC08" Then
.Cells(i, 5) = [Lookup(刷卡时间,{06:00;11:00;17:30},{"上午上班";"中午上班";"下午下班"})]
Else
.Cells(i, 5) = [Lookup(刷卡时间,{06:00;11:00;17:30},{"上午上班";"中午上班";"下午下班"})]
End If
Next
End With
Next r
TEST.rar
(322.67 KB, 下载次数: 7)
|
|