考勤加列及引用自定义函数

Sub 考勤加列()
introw = [a655536].End(xlUp).Row
Dim rng As Range
If Not Range("c1").Value Like "有效签到" Then '如无指定列,插入空列
Columns("C:C").Select
    Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
    Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
    Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
    Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
    Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
    Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
    Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
    Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
       
    Columns("C:H").Select
    Selection.NumberFormatLocal = "h:mm;@"
    With Selection
        .HorizontalAlignment = xlCenter
        .VerticalAlignment = xlCenter
        .WrapText = False
        .Orientation = 0
        .AddIndent = False
        .IndentLevel = 0
        .ShrinkToFit = False
        .ReadingOrder = xlContext
        .MergeCells = False
    End With
Range("c1").Value = "有效签到"
Range("d1").Value = "签到状态"
Range("e1").Value = "有效签离"
Range("f1").Value = "签离状态"
Range("g1").Value = "工作时长"
Range("h1").Value = "考勤评测"
Range("i1").Value = "考勤天数"
Range("j1").Value = "早退次数"
'Range("i2").Value = "=IF(AND(G2>=2/24,G2<5/24),0.5,IF(AND(G2>=5/24,G2<=8/24),1,0))"

Range("i2").Value = "=IF(OR(AND(G2>=2/24000,G2<5/24),AND(G2=""--"",OR(C2<1,E2<1))),0.5,IF(AND(G2>=5/24,G2<=8/24),1,0))"
Range("j2").Value = "=IF(AND(G2>5/24,G2<7/24),1,0)"


End If
For Each rng In Sheet1.Range("a1:z1") '在首行找到相应的字段所在列值
'If rng = "最早签到时间" Then colu_c = rng.Column
If rng Like "最早签到时间" Then colu_c$ = VBA.Split(rng.Address, "$")(1)
If rng Like "最晚签到时间" Then colu_l$ = VBA.Split(rng.Address, "$")(1)
If rng Like "*签到标准*" Then colu_cs$ = VBA.Split(rng.Address, "$")(1)
If rng Like "*签离标准*" Then colu_ls$ = VBA.Split(rng.Address, "$")(1)
If rng Like "出勤状态" Then colu_zk$ = VBA.Split(rng.Address, "$")(1)
Next
Dim kk As New kq365
 
 't = 120
introw = [a655536].End(xlUp).Row
Dim i As Integer
For i = 2 To introw Step 1
tc = Range(colu_c & i)
tcs = Range(colu_cs & i)
 tl = Range(colu_l & i)
 tls = Range(colu_ls & i)
 zk = Range(colu_zk & i)
 '时间容差t,单位分钟

  myarr2 = kk.kq(tcs, tc, tls, tl, zk)
 
  Range("c" & i).Value = myarr2(0)
  Range("d" & i).Value = myarr2(1)
  Range("e" & i).Value = myarr2(2)
  Range("f" & i).Value = myarr2(3)
  Range("g" & i).Value = myarr2(4)
  Range("h" & i).Value = myarr2(5)
  Next
 
 
      Columns("C:j").Select
    Columns("C:j").EntireColumn.AutoFit

  Set kk = Nothing '释放类资源
End Sub

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Elasticsearch是一种开源的分布式搜索和分析引擎,它的核心功能是全文搜索和实时分析。当对Elasticsearch进行加列时,可以从以下几个方面来回答: 1. 数据列的定义:在Elasticsearch中,每个索引都由一系列的数据列组成,这些数据列在Elasticsearch中被称为字段。加列就是向索引中添加新的字段,以便更好地满足不同的查询和分析需求。 2. 加列的目的:加列的目的是为了更好地满足数据分析和搜索的需求。通过添加新的字段,可以使数据更加丰富和多样化,提供更准确的搜索结果和更全面的数据分析。 3. 加列的方法:可以通过Elasticsearch提供的API来进行加列操作。其中,最常用的API是索引API(Index API),通过该API可以向索引中添加新的字段,同时可以指定字段的数据类型和分析方式。 4. 加列的影响:加列会对索引的结构和性能产生一定的影响。首先,在加列之后,需要重新建立索引,这可能会导致索引的重建时间较长。其次,加列后索引的体积可能会增大,需要更多的存储空间。此外,加列还会对索引查询的效率产生一定的影响,需要评估其对性能的影响。 总结来说,通过Elasticsearch的加列操作,可以实现更好的数据搜索和分析功能,提升数据的准确性和全面性。加列的方法简便灵活,但需要注意对索引结构和性能的影响。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值