Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 2249|回复: 2

[已解决]汇总出错,望修改一下代码

[复制链接]
发表于 2016-2-26 21:13 | 显示全部楼层 |阅读模式
请看附件,谢谢 44.rar (59.78 KB, 下载次数: 9)
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2016-2-26 22:41 | 显示全部楼层    本楼为最佳答案   
本帖最后由 JX_shangrila 于 2016-2-26 22:51 编辑

按您代码思路修改
Sub test()
  Dim r%, i%
  Dim arr, brr
  Dim d As Object
  Set d = CreateObject("scripting.dictionary")
  Set d1 = CreateObject("scripting.dictionary")
  m = 1
  For Each aa In Array("东", "南", "西", "东北")
    m = m + 1
    d1(aa) = m
  Next
  With Worksheets("数据源")
    r = .Cells(.Rows.Count, 2).End(xlUp).Row
    arr = .Range("a4:h" & r)
    For i = 1 To UBound(arr)
      xm = Format(arr(i, 2), "yyyy年m月")
      ts = Day(DateSerial(Year(arr(i, 2)), Month(arr(i, 2)) + 1, 0))
      If Not d.exists(xm) Then
        ReDim brr(1 To 5, 1 To ts + 1)
        brr(1, 1) = "名称"
        For j = 1 To ts
          brr(1, j + 1) = j & "日"
        Next
        m = 1
        For Each aa In d1.keys
          m = m + 1
          brr(m, 1) = aa
        Next
        If d1.exists(arr(i, 4)) Then
          m = d1(arr(i, 4))
          n = Day(arr(i, 2))
          brr(m, n + 1) = brr(m, n + 1) + arr(i, 8)
        End If
      Else
        brr = d(xm)
        If d1.exists(arr(i, 4)) Then
          m = d1(arr(i, 4))
          n = Day(arr(i, 2))
          brr(m, n + 1) = brr(m, n + 1) + arr(i, 8)
        End If
      End If
      d(xm) = brr   
    Next
  End With
  m = 1
  With Worksheets("表格")
    .Cells.Clear
    For Each aa In d.keys
      brr = d(aa)
      With .Cells(m, 1)
        .Value = aa
        .Resize(1, 32).Merge
        .HorizontalAlignment = xlCenter
      End With
      .Cells(m + 1, 1).Resize(5, UBound(brr, 2)) = brr
      .Cells(m, 1).Resize(6, 32).Borders.LineStyle = xlContinuous
      m = m + 8
    Next
  End With
End Sub

44.rar

57.28 KB, 下载次数: 6

评分

参与人数 1 +1 收起 理由
171774040 + 1 很给力

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2016-2-27 15:59 | 显示全部楼层
JX_shangrila 发表于 2016-2-26 22:41
按您代码思路修改
Sub test()
  Dim r%, i%

谢谢~~~~~~~~~~
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-6-5 01:50 , Processed in 0.236105 second(s), 10 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表