excel学习库

excel表格_excel函数公式大全_execl从入门到精通

Excel用VBA一键标记连续日期并且符合特定条件的记录

一、代码要求:

在下面Excel工作表中,如果d列(企业名称)的值相同,并且B列(日期)连续出现3天或以上,则在所有连续日期对应的E列(标记)输入y,否则为空

二、实现代码

'以下是优化后的代码:Sub CheckConsecutiveDates()Dim lastRow As LonglastRow = Cells(Rows.Count, "D").End(xlUp).Row '获取最后一行的行数Dim curValue As String '当前D列的值Dim curDate As Date '当前B列的日期Dim curStatus As String '当前连续日期的状态Dim consecDays As Integer '连续日期的天数curValue = ""curDate = Cells(2, "B").ValuecurStatus = ""consecDays = 0For i = 2 To lastRow '从第二行开始遍历数据    If Cells(i, "D").Value = curValue Then '如果D列的值相同        If Cells(i, "B").Value = curDate + 1 Then '如果当前日期与前一天相差一天            If curStatus = "y" Or consecDays >= 2 Then '如果前面已经有连续日期,或者当前日期已经是第三天连续                curStatus = "y"                consecDays = consecDays + 1            Else '如果前面没有连续日期                curStatus = "n"                consecDays = 2            End If        Else '如果当前日期与前一天不连续            If consecDays >= 3 Then '如果前面有连续日期                Range(Cells(i - consecDays, "E"), Cells(i - 1, "E")).Value = "y" '在所有连续日期对应的E列输入y            End If            curStatus = ""            consecDays = 0        End If    Else '如果D列的值不同        If consecDays >= 3 Then '如果前面有连续日期            Range(Cells(i - consecDays, "E"), Cells(i - 1, "E")).Value = "y" '在所有连续日期对应的E列输入y        End If        curStatus = ""        consecDays = 0    End If        curValue = Cells(i, "D").Value    curDate = Cells(i, "B").ValueNext i'处理最后一段连续日期If consecDays >= 3 Then '如果最后一段是连续日期    Range(Cells(lastRow - consecDays + 1, "E"), Cells(lastRow, "E")).Value = "y" '在所有连续日期对应的E列输入yEnd IfEnd Sub

这段代码的应用场景是针对一个Excel表格中的数据进行处理,判断其中日期是否连续,并在连续的日期所在的行中特定的列(E列)输入对应的标记("y")。

具体来说,该代码遍历了Excel表格中指定的列(D列),同时对比该列中相邻两行的数据,判断这些数据对应的日期(B列中的数据)是否连续。如果两行数据对应的日期连续,则该代码将判断当前连续日期的状态(curStatus)和连续日期的天数(consecDays),并根据这些数据决定是否在第一天日期对应的E列中输入"y"。如果当前日期与前一天不连续,则该代码判断前面是否存在连续日期,如果存在则在第一天日期对应的E列中输入"y",否则为空。

通过以上处理,该代码实现了对Excel表格中的数据进行连续日期的判断,并在连续日期所在行的特定列输入标记的功能。这个功能可以方便地帮助用户对Excel表格中的数据进行处理和分析,提高工作效率。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

«    2024年12月    »
1
2345678
9101112131415
16171819202122
23242526272829
3031
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
搜索
最新留言
    文章归档
      友情链接