作者:乔山办公网日期:
返回目录:excel表格制作
程序代码如下:百
Option Explicit
Sub s1()'直接单元格度
Dim i, s
Cells(1, 3) = Now()
s = 0
For i = 1 To 2500
s = s + Cells(i, 1)
Next i
Cells(1, 2) = s
Cells(1, 4) = Now()
End Sub
Sub s2()'使用数组
Dim i, s, arr
Cells(1, 8) = Now()
s = 0
arr = Range("f1:f2500")
For i = 1 To 2500
s = s + arr(i, 1)
Next i
Cells(1, 7) = s
Cells(1, 9) = Now()
End Sub
计算结果都为3126250,消耗的时内间都为0,拷屏如容下:
最简单的方法就是定义变量,然后循环相加;当然不怕麻烦的话,也可以将数组中的一个个元素直接用+号累加起来得到最终的和。
关于数组:
所谓数组,就是相同数据类型知的元素按一定顺序排列的集合,就是把有限个类型相同的变量用一个名字命名,然后用编号区分他们的变量的集合,这个名字称为数组名,编号称为下标。组成数组的各个变量称为数组的分道量,也称为数组的元素,有时也称为下标变量。数组是在程序设计中,为了处理方便,内 把具有相同类型的若干变量按有序的形式组织起来的一种形式。这些按序排列的同类数据元素的集合称为数组。
数组在VBA中的应用:容
在VBA编程中应用数据可以极大地提高程序的运算速度,能否熟练运行数据也往往成为区分编程高手与入门菜鸟之间的标准。如果想要在VBA中更进一步,用好数组是必须跨越的门槛!
像这种类型的分类求和汇总,数据透视表完虐。
函数就可以了吧,先用抄2003版的EXCEL函数
A级小学数量
=sumproduct((A1:A12="A级")*(B1:B12="小学")*C1:C12)
A级中学数量
=sumproduct((A1:A12="A级")*(B1:B12="中学")*C1:C12)
2007版有知一个SUMIFS函数可用
=sumifs(C1:C12,A1:A12,"A级",B1:B12,"小学")
=sumifs(C1:C12,A1:A12,"A级",B1:B12,"中学")
结果道都是一样的