|
楼主 |
发表于 2018-9-16 18:43
|
显示全部楼层
本帖最后由 玉阳山人 于 2018-9-17 08:01 编辑
老师:我想把这个代码加载宏,应用到所有工作簿中去。但需要计数的数据源有的在《总表》里,有的在《组三》、《组六》或其他工作表里;更多的是一个工作簿中有《总表》,还有《组三》、《组六》或其他工作表。但是许多时候,需要进行统计的数据源混杂在《总表》、《组三》、《组六》或其他工作表里。
假如,如果我需要对《组三》里的J列数据进行计数统计:
在开头为数字的统计表的K2输入表名“组三”,K3输入“J”,代码能不能执行计算?代码里带红色填充的“总表”会不会有妨碍?如果数据源不在《总表》里,需不需要修改下面带红色填充的表名?如果需要修改表名,那就不能加载宏了!
怎样才能设置代码里的《总表》为当前工作表?这样,当点击《总表》里的宏按钮,那些数字开头的统计表就会显示《总表》里的统计项目;当点击《组三》里的宏按钮,那些数字开头的统计表就会显示《组三》里的统计项目。
但最好的办法是:当点击《总表》里的宏按钮时,让那些数字开头的统计表,根据第二行指定的表名和第三行指定的列标,自动执行对应表名、列标的计数统计。
Sub 周期条件计数()
Application.ScreenUpdating = False
tms = Timer
Dim ar(), br(), cr(), dr(), fr(), mySh As Worksheet, myR As Range, myC As Range, _
myS$, myT$, myA$, myB$, a&, b&, c&, d&, e&, f&, g&, i&, j&, k&, p&, q&, u&, v&, x&
ar = Range(Sheets("总表").Cells(5, 5), Sheets("总表").Cells(Sheets("总表").Cells(1, 8), 16))
v = .Range(cr(0)(p - 1)).Row: g = Sheets("总表").Cells(v, dr(0)(p - 1)).Column
f = .Range(cr(0)(p - 1)).Column: b = Sheets("总表").Cells(v, dr(0)(p - 1))
另外,请看截图:
《总表》的S列是计算显示中位号的,而统计表《3 结构》的N:Q列是与之对应的;为什么点击《总表》里的宏按钮,唯独《总表》S列的计算结果,在统计表《3 结构》的N:Q列显示的全部是空白呢?
怎样才能使数字开头的统计表,能够对《总表》I列右边【I:XFD之间】任意列的项目进行统计? 这样,就不会遗漏上边S列的统计了。
0917.zip
(947.6 KB, 下载次数: 6)
|
|