赞
踩
目录
在VBA编程中,经常需要反复实现某种相同的数据处理,而其数据处理的触发机制却是多样化的,可能通过事件,也可能通过单击按钮。如图所示,该表为某公司2009年和2010
年的工资明细,制作了查询表,插入了两个按钮,通过单击这两个按钮分别查询2009年与2010年按部门汇总的工资表。
示例数据下载
https://download.csdn.net/download/ngbshzhn/20298070
编写一个带有参数的汇总过程,以年份作为参数传递。为两个按钮分别编写代码,通过传递不同的年份实现不同的汇总。
- Option Explicit
- Sub sum2009()
- Call MySum(2009)
- End Sub
-
- Sub sum2010()
- Call MySum(2010)
- End Sub
-
- Sub MySum(iYear As Integer)
- Dim shtSum As Worksheet '汇总表
- Dim shtData As Worksheet '数据表
- Dim arrSum '汇总数组
- Dim arrData '数据数组
- Dim rowSum As Long '汇总表行号
- Dim rowData As Long '数据表行号
- Dim rowNew As Long '汇总表总行数
- Dim colN As Long
- Dim sDept As String '部门
- Dim bln As Long '查找标识变量
-
- Set shtData = Sheets("sheet1")
- Set shtSum = Sheets("sheet2")
-
- '数据数组赋值
- arrData = shtData.Range("A1").CurrentRegion.Value
-
- rowNew = 0
- '汇总数组第一维下限与原始数组一致
- ReDim arrSum(Range("C1").Column To Range("P1").Column, 1 To 1)
-
- For rowData = 2 To UBound(arrData)
- If Year(arrData(rowData, UBound(arrData, 2))) = iYear Then
- sDept = arrData(rowData,

Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。