|
本帖最后由 ykcbf1100 于 2024-6-26 10:42 编辑
按月统计,代码已更新- Sub ykcbf() '//2024.6.26 按月统计
- Set List = CreateObject("System.Collections.ArrayList")
- [g4:r10000] = ""
- r = Cells(Rows.Count, 1).End(3).Row
- For i = 4 To r
- rq1 = Cells(i, 2): t1 = Day(rq1)
- rq2 = Cells(i, 3): t2 = Day(rq2)
- yf = DateSerial(Year(rq1), Month(rq1), 1)
- List.Clear
- Do While yf <= rq2
- If Not List.Contains(Month(yf)) Then List.Add Month(yf)
- yf = DateAdd("m", 1, yf)
- If Year(yf) > Year(rq2) Or (Year(yf) = Year(rq2) And Month(yf) > Month(rq2)) Then
- Exit Do
- End If
- Loop
- n = 6
- For Each k In List
- m = m + 1
- If m = 1 Then t = t1
- If m = List.Count Then t = t2
- If m > 1 And m < List.Count Then t = 0
- Cells(i, n + k) = Cells(i, 4) * (Cells(3, n + k).Value - t)
- Next
- Next
- MsgBox "OK!"
- End Sub
复制代码
|
|