|
本帖最后由 笨鸟飞不高 于 2020-7-18 13:55 编辑
Sub AwTest()
Dim i&, r&, j%, DayM%, iStr$, DayStr$, endDay As Date, iDay As Date
Dim arr, kAr, tAr, d As Object
Application.ScreenUpdating = False
Set d = CreateObject("Scripting.Dictionary")
endDay = "2013-12"
With Sheets("数据")
.[a1:f83015].Sort .[a1], , .[c1], , Header:=xlYes
arr = .[a1].CurrentRegion
For i = 2 To UBound(arr)
If CDate(Left(arr(i, 3), 4) & "-" & Right(arr(i, 3), 2)) <= endDay Then
iStr = arr(i, 1) & "|" & arr(i, 2) & "|" & arr(i, 4)
d(iStr) = ""
End If
Next
kAr = d.keys: tAr = d.items
ReDim brr(1 To UBound(arr), 1 To UBound(arr, 2) + 1)
For i = 2 To UBound(arr)
If CDate(Left(arr(i, 3), 4) & "-" & Right(arr(i, 3), 2)) <= endDay Then
iStr = arr(i, 1) & "|" & arr(i, 2) & "|" & "续发"
If Not d.exists(iStr) Then
r = r + 1
For j = 1 To UBound(arr, 2)
brr(r, j) = arr(i, j)
Next
DayStr = Left(brr(r, 3), 4) & "-" & Right(brr(r, 3), 2)
iDay = CDate(DayStr)
DayM = DateDiff("m", iDay, endDay) '相距月数
If DayM > 0 Then brr(r, 7) = DayM \ 12 & "年" & DayM Mod 12 & "个月"
End If
End If
Next
End With
With Sheets("一直停发")
.[a1].CurrentRegion.Offset(1) = Empty
.[a2].Resize(r, 7) = brr
End With
Application.ScreenUpdating = True
End Sub
一直停发的代码!!增加开始判断是什么意思?在哪里增加?? |
评分
-
2
查看全部评分
-
|