利用VBA方法制作具有明细汇总功能的Excel表格。最终演示效果如下:

前期准备工作(包括相关工具或所使用的原料等)
Excel
VBA
详细的操作方法或具体步骤
按ALT+F11打开VBE编辑器,单击菜单:工具-引用,弹出 引用-VBAProject对话框。

点击浏览,在弹出的添加引用对话框中,找到Scrrun.dll,点击确定,添加字典dll文件库。

在VBE编辑器中,新建一个模块,在对应属性窗口,改名为:隐藏显示,粘贴如下代码:
Sub hiddhzsj()
'隐藏汇总数据金额栏值为0的行
Dim rg As Range, flag As Boolean
Application.ScreenUpdating=False
m=3 '指定列号
flag=True
For i=5 To 104 '扫描5-104行
If Cells(i, m)=Empty And Rows(i).Hidden=False Then '如果i行第m列的单元值为0或空白则隐藏它
If flag Then
Set rg=Rows(i)
flag=False
Else
Set rg=Union(rg, Rows(i))
End If
End If
Next
If flag=False Then
rg.EntireRow.Hidden=True
End If
Application.ScreenUpdating=True
End Sub
Sub showhzsj()
Rows("5:104").Hidden=False
End Sub
Sub hiddmxsjjx()
'隐藏明细数据标记栏不为1的行并加删除线
Dim rg As Range, flag As Boolean
Application.ScreenUpdating=False
flag=True
hl=ActiveSheet.Range("e65536").End(xlUp).Row
For i=108 To hl
If Rows(i).Hidden=False And Cells(i, 5) <> 1 Then
If flag Then
Set rg=Rows(i)
flag=False
Else
Set rg=Union(rg, Rows(i))
End If
End If
Next
If flag=False Then
rg.EntireRow.Hidden=True
End If
Application.ScreenUpdating=True
End Sub

再新建一个模块,改名为:汇总计算,粘贴如下代码:
Sub huizongsj()
Dim zd As New Dictionary
Dim arr
hl=ActiveSheet.Range("e65536").End(xlUp).Row
hf=ActiveSheet.Range("e107:e" & hl).Find(1, SearchDirection:=xlNext).Row
arr=Range("b" & hf & ":e" & hl)
For i=1 To UBound(arr)
If arr(i, 4)=1 Then zd(arr(i, 1))=zd(arr(i, 1)) + arr(i, 2)
Next
Range("b5:c104").ClearContents
Range("b5").Resize(zd.Count, 1)=Application.Transpose(zd.Keys)
Range("c5").Resize(zd.Count, 1)=Application.Transpose(zd.Items)
End Sub
Sub sjsum()
Dim hf As Long, hl As Long, sh As Long, sl As Long
hl=ActiveSheet.Range("e65536").End(xlUp).Row
hf=ActiveSheet.Range("e107:e" & hl).Find(1, SearchDirection:=xlNext).Row
sh=ActiveSheet.Range("b65536").End(xlUp).Row
sl=ActiveSheet.Range("b65536").End(xlUp).Column
arr=Range("b" & hf & ":e" & hl)
For i=1 To UBound(arr)
If arr(i, 4)=1 Then temp=temp + arr(i, 2)
Next
Cells(sh, sl).Offset(0, 1).Value=temp
End Sub

左键单击菜单:视图-工具栏-控件工具箱,在控件工具栏上点选命令按钮,左键拖拉出一个如下所示的CommandButton1按钮。


在工具栏上,左键设计模式。

在CommandButton1按钮上面,右键,单击属性。

在弹出的属性对话框中,将Caption属性改为:汇总数据并显示。

在汇总数据并显示按钮上面,右键单击查看代码,在弹出的代码窗口,粘贴如下代码:
Private Sub CommandButton1_Click()
If CommandButton1.Caption="汇总数据金额为0隐藏" Then
hiddhzsj
CommandButton1.Caption="汇总数据并显示"
Else
showhzsj
huizongsj
CommandButton1.Caption="汇总数据金额为0隐藏"
End If
End Sub

单击菜单:视图-工具栏-窗体,在窗体控件栏上点击按钮,拖拉2个按钮,分别改名为:计算实际金额、指定sjsum宏,明细数据加删除线并隐藏、指定hiddmxsjjx宏,效果如下图:

具体表格,请依样制作或者前往http://pan.baidu.com/share/link?shareid=1762576984&uk=1996803567下载演示文档,具体效果如下图:

- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
