ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 9230|回复: 14

[求助] 自动插入“合计”行并汇总计算

[复制链接]

TA的精华主题

TA的得分主题

发表于 2012-8-4 22:32 | 显示全部楼层 |阅读模式
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
你们好,请高手们,我有几张表,表的格式 是一样的(请看附件),1、如何 用 代码设计一个按钮,实现在表中的第一空白行插入“合计”行并自动汇总计算(I和L列),2、另外也设计 一个按钮。当不要“合计行”时能实现撤销“合计”行。

员工工资1.zip

33.8 KB, 下载次数: 194

TA的精华主题

TA的得分主题

发表于 2012-8-4 22:55 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
关于管理数据的基本方法请参考:
  
★Excel数据管理的一般规律★    http://club.excelhome.net/thread-287461-1-1.html

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-8-4 23:08 | 显示全部楼层
LangQueS 发表于 2012-8-4 22:55
关于管理数据的基本方法请参考:
  
★Excel数据管理的一般规律★    http://club.excelhome.net/thread- ...

看不懂的。我是菜鸟来的,你能帮我吗

TA的精华主题

TA的得分主题

发表于 2012-8-4 23:20 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
请参考下帖中数据表的样式,设置好能使用透视表汇总的数据表……

★数据透视表中使用组合★        http://club.excelhome.net/thread-307220-1-1.html

TA的精华主题

TA的得分主题

发表于 2012-8-4 23:21 | 显示全部楼层
设置数据表要注意的几个基本原则:
  1、管理数据要设置多个工作表,例如、表单、数据表(称作“数据库”)、引用表、筛选表、信息表、汇总报表、其他辅助(例如目录表)表等等,不可混淆。其中数据表专用来保存日常发生的数据。
  2、将日常发生的数据保存在同一个工作表(“数据库”)中。如果数据源在多个工作簿或工作表中,首先要合并数据。
  3、数据表是一维表,第一个字段是“行号”字段,“行号”字段各行内容由公式"=ROW()"形成
  4、数据库表的标题行是1行,没有重复名称,字段名称之间不间隔空单元。
  5、数据库表中除了“行号”字段,其他位置无公式设置。
  6、数据库表中不设置复杂的格式,例如合并单元格、数据有效性等等。
  7、日常发生的每个“事件”对应数据库表中的标题名称记录在数据库表的一行中。
设置好基础数据表,非常有利于以后的数据管理;而用报表形式保存数据是不正确的,会给以后的数据管理和使用造成很大困难。

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-8-5 00:48 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
LangQueS 发表于 2012-8-4 23:21
设置数据表要注意的几个基本原则:
  1、管理数据要设置多个工作表,例如、表单、数据表(称作“数据库”)、 ...

谢谢了!明白了!

TA的精华主题

TA的得分主题

发表于 2012-8-5 02:15 | 显示全部楼层
imlzrlzr 发表于 2012-8-5 00:48
谢谢了!明白了!

参考一下里面的代码。

Sub 插入每页小计累计()
Dim x$, r, a, b, k, m, n, i, j
If MsgBox("你确定要插入本页合计&本页累计吗?", vbYesNo, "★ ★ ★ ★ 王德荣提示 ★ ★ ★ ★") = vbYesNo Then Exit Sub
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
    a = 3 '顶端标题行行数
    k = ActiveWindow.SelectedSheets.HPageBreaks(1).Location.Row - a - 3 '[减3:小计行+累计行+1(常数)]
   
    r = [a65536].End(3).Row
    b = (r - a) Mod k
    If b > 0 Then n = k - (r - a) Mod k Else n = 0
    For i = r + n To a + k - 1 Step -k
        Cells(i, 1).Offset(1, 0).Resize(2, 1).EntireRow.Insert
        Cells(i + 1, 1) = "本页合计": Cells(i + 2, 1) = "本页累计"
        Cells(i + 1, 1).Resize(1, 33).Interior.ColorIndex = 36
        Cells(i + 2, 1).Resize(1, 33).Interior.ColorIndex = 34
        For j = 2 To 33
            Cells(i + 2, j) = WorksheetFunction.Sum(Range(Cells(3, j), Cells(i, j)))
            Cells(i + 1, j) = WorksheetFunction.Sum(Range(Cells(i - k + 1, j), Cells(i, j)))
        Next
    Next
    r = [a65536].End(3).Row
    Cells(r - n - 1, 1).Resize(n + 2, 33).Borders.LineStyle = 1
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
End Sub

TA的精华主题

TA的得分主题

发表于 2012-8-5 02:16 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
YEJINHAI 发表于 2012-8-5 02:15
参考一下里面的代码。

Sub 插入每页小计累计()

Sub 删除每页小计累计()
'Dim r&
'If MsgBox("你确定要删除插入本页合计&本页累计吗?", vbYesNo, "★ ★ ★ ★ 王德荣提示 ★ ★ ★ ★") = vbYesNo Then Exit Sub
'Application.ScreenUpdating = False
'Application.Calculation = xlCalculationManual
    'r = [A65536].End(3).Row
   ' Range("A4:A" & r).SpecialCells(4).Delete (3)
'Application.Calculation = xlCalculationAutomatic
'Application.ScreenUpdating = True
If MsgBox("你确定要插入本月合计&本年累计吗?", vbYesNo, "★ ★ ★ ★ 王德荣提示 ★ ★ ★ ★") = vbYesNo Then Exit Sub
On Error Resume Next
[A:A].Replace "*计", "#N/A", 1
[A:A].SpecialCells(2, 16).Delete (3)
End Sub

TA的精华主题

TA的得分主题

发表于 2012-8-5 02:17 | 显示全部楼层
YEJINHAI 发表于 2012-8-5 02:16
Sub 删除每页小计累计()
'Dim r&
'If MsgBox("你确定要删除插入本页合计&本页累计吗?", vbYesNo, "★  ...

Sub 插入年度小计累计()
    Dim arr, brr(), l&, i&, m&, t, r&
    Application.ScreenUpdating = False
    Application.Calculation = xlCalculationManual
    On Error Resume Next
    [A:A].Replace "*计", "#N/A", 1
    [A:A].SpecialCells(2, 16).Delete (3)
    On Error GoTo 0
    r = [a65536].End(3).Row
    Range("A4:AG" & r).Sort Key1:=Range("A4"), Order1:=xlAscending
    arr = Range("A1:A" & r)
    ReDim brr(1 To UBound(arr))
    For i = 4 To UBound(arr)
        If Month(arr(i, 1)) <> t Then
            m = m + 1
            brr(m) = i
            t = Month(arr(i, 1))
        End If
    Next
    m = m + 1
    brr(m) = i
    With WorksheetFunction
        For l = m To 2 Step -1
            i = brr(l)
            Rows(i).Insert
            Cells(i, 1) = "本月合计"
            Cells(i, 1).Resize(1, 33).Interior.ColorIndex = 36
            Cells(i, 2).Resize(1, 32) = "=SUM(R" & brr(l - 1) & "C:R" & i - 1 & "C)"
            i = i + 1
            Rows(i).Insert
            Cells(i, 1) = "本年累计"
            Cells(i, 1).Resize(1, 33).Interior.ColorIndex = 34
            Cells(i, 2).Resize(1, 32) = "=SUMIF(R4C1:R" & i & "C1,""*合计"",R4C:R" & i & "C)"
        Next
    End With
    Application.Calculation = xlCalculationAutomatic
    Application.ScreenUpdating = True
End Sub

TA的精华主题

TA的得分主题

发表于 2012-8-5 02:18 | 显示全部楼层
这些都是人家现成的代码,挺好的,修改里面的参数就可以。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-9-29 08:18 , Processed in 0.039089 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

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