|
求助:1、在D2单元格选择相应日期后表格第6行(累计发生数)只显示当年度累计发生数!同时第4行全年预算数显示相应年度数据
2、在D2单元格增加一个所有年度统计有效性(比如2015-2017),选择后表格第6行(累计发生数)显示所有年度累计发生数!同时第4行全年预算数显示所有年度数据,以及清空第5行本月发生数
第一个数据列表和第二个数据列表都是动态日期的。
请修改代码!
以上第一条完成就万分感激!第2条完成就更完美了!谢谢
- Private Sub Worksheet_Change(ByVal Target As Range)
- Dim xrng As Range
- If Target.Address <> [d2].Address Then Exit Sub
- Dim brr(1 To 2, 1 To 6)
- r1 = Range("a:a").Find("汇总", , , , , xlNext).Row '上一张表的汇总行
- r2 = Range("a:a").Find("汇总", , , , , xlPrevious).Row '下一张表的汇总行
- rq = Target '给定日期
- If rq = "全部" Then
- [b4].Resize(1, 6).Value = Cells(r2, 2).Resize(1, 6).Value
- [b5].Resize(1, 6).Value = ""
- [b6].Resize(1, 6).Value = Cells(r1, 2).Resize(1, 6).Value
- Else
- arr = Range("a8:g" & r1 - 1)
- nd = Year(rq) '年度
- For i = 1 To UBound(arr)
- xrq = arr(i, 1) '日期
- If xrq <= rq And nd = Year(xrq) Then '同年累计
- For j = 1 To 6
- brr(2, j) = brr(2, j) + arr(i, j + 1)
- If rq = xrq Then brr(1, j) = arr(i, j + 1) '本月数
- Next
- End If
- Next
- Range("b5:g6") = brr
- Set xrng = Range("a:a").Find(nd, , , lookat:=xlWhole) '全年预算
- If Not xrng Is Nothing Then [b4].Resize(1, 6).Value = Cells(xrng.Row, 2).Resize(1, 6).Value
- End If
- End Sub
复制代码
|
|