Excel精英培训网

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

[已解决]请帮忙修改代码

[复制链接]
发表于 2014-7-12 14:55 | 显示全部楼层 |阅读模式
要解决的问题:按月记录,多次点汇总,前面的各月会多次出现“本月合计”“本年累计”,例如:当一月记录完后,点“汇总”,出现“本月合计”“本年累计”,这是对的,但当把二月的数据记录完后,再点“汇总”时,则在一月的后面又出现了一次“本月合计”“本年累计”,显然重复了,只要保留一次怎么办?请帮忙修改代码,先谢了!!
  1. Sub 汇总()
  2. Dim i As Integer
  3. Dim mjj As Double, yjj As Double, mdj As Double, ydj As Double
  4. For i = 6 To 999
  5. mjj = Range("e" & i).Value + mjj
  6. mdj = Range("f" & i).Value + mdj
  7. yjj = yjj + Range("e" & i).Value
  8. ydj = ydj + Range("f" & i).Value
  9. If Month(Range("a" & i)) <> Month(Range("a" & i + 1)) And Range("d" & i + 2) <> "本年累计" Then
  10. Rows(i + 1 & ":" & i + 2).Insert
  11. Range("d" & i + 1) = "本月合计"
  12. Range("d" & i + 2) = "本年累计"
  13. Range("e" & i + 1) = mjj
  14. Range("f" & i + 1) = mdj
  15. Range("e" & i + 2) = yjj
  16. Range("f" & i + 2) = ydj
  17. mjj = 0: mdj = 0
  18. i = i + 2
  19. End If
  20. Next i
  21. End Sub
复制代码
最佳答案
2014-7-12 15:53
本帖最后由 qh8600 于 2014-7-12 15:57 编辑
  1. Sub 汇总()
  2. Dim i As Integer
  3.     Dim mjj As Double, yjj As Double, mdj As Double, ydj As Double
  4.     For i = 6 To 999
  5.         mjj = Range("e" & i).Value + mjj
  6.         mdj = Range("f" & i).Value + mdj
  7.         yjj = yjj + Range("e" & i).Value
  8.         ydj = ydj + Range("f" & i).Value
  9.             If Month(Range("a" & i)) <> Month(Range("a" & i + 1)) And Range("d" & i + 2) <> "本年累计" And Range("a" & i) <> "" Then
  10.                 Rows(i + 1 & ":" & i + 2).Insert
  11.                 Range("d" & i + 1) = "本月合计"
  12.                 Range("d" & i + 2) = "本年累计"
  13.                 Range("e" & i + 1) = mjj
  14.                 Range("f" & i + 1) = mdj
  15.                 Range("e" & i + 2) = yjj
  16.                 Range("f" & i + 2) = ydj
  17.                 mjj = 0: mdj = 0
  18.                 i = i + 2
  19.             End If
  20.     Next i
  21. End Sub
复制代码
加个判断试试

按月汇总.rar (22.35 KB, 下载次数: 15)
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
 楼主| 发表于 2014-7-12 15:18 | 显示全部楼层
附件如下: 按月汇总.zip (22.87 KB, 下载次数: 7)
回复

使用道具 举报

发表于 2014-7-12 15:53 | 显示全部楼层    本楼为最佳答案   
本帖最后由 qh8600 于 2014-7-12 15:57 编辑
  1. Sub 汇总()
  2. Dim i As Integer
  3.     Dim mjj As Double, yjj As Double, mdj As Double, ydj As Double
  4.     For i = 6 To 999
  5.         mjj = Range("e" & i).Value + mjj
  6.         mdj = Range("f" & i).Value + mdj
  7.         yjj = yjj + Range("e" & i).Value
  8.         ydj = ydj + Range("f" & i).Value
  9.             If Month(Range("a" & i)) <> Month(Range("a" & i + 1)) And Range("d" & i + 2) <> "本年累计" And Range("a" & i) <> "" Then
  10.                 Rows(i + 1 & ":" & i + 2).Insert
  11.                 Range("d" & i + 1) = "本月合计"
  12.                 Range("d" & i + 2) = "本年累计"
  13.                 Range("e" & i + 1) = mjj
  14.                 Range("f" & i + 1) = mdj
  15.                 Range("e" & i + 2) = yjj
  16.                 Range("f" & i + 2) = ydj
  17.                 mjj = 0: mdj = 0
  18.                 i = i + 2
  19.             End If
  20.     Next i
  21. End Sub
复制代码
加个判断试试

按月汇总.rar (22.35 KB, 下载次数: 15)
回复

使用道具 举报

 楼主| 发表于 2014-7-14 23:42 | 显示全部楼层
qh8600 发表于 2014-7-12 15:53
加个判断试试

不好意思,按月运行的话,出现了新的问题,那就是结果有误,能不能再帮忙解决
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-6-1 02:30 , Processed in 0.337712 second(s), 9 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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