《VBA代码解决方案》这套教程是我最早推出的教程,目前已经是第二版修订了。这套教程定位于入门后的提高,在学习这套教程过程中,侧重点是要理解及掌握我的“积木编程”思想。要灵活运用教程中的实例像搭积木一下把自己喜欢的代码摆好。
这套教程共三册,一百四十七讲,内容覆盖较广,也是初级和中级间的过度教程,改版后的内容主要是提供程序源码文件及代码修正为32位和64位兼用代码。今后一段时间会给大家陆续推出。今日的内容是第49讲:工作表函数SUM
大家好,我们今日继续讲解VBA代码解决方案的第49讲内容:VBA中SUM函数的利用方法。
对多个单元格求和,是统计工作中非常普遍的工作, SUM函数及其衍生的函数,在统计工作中起着举足轻重的作用,如果把这个函数利用好了,对自己的工作是非常方便的,今日我在VBA中就此函数的利用再次加以讲解。
在对工作表的单元格区域进行求和计算时,使用工作表Sum函数比使用VBA代码遍历单元格进行累加求和效率要高得多,我们在熟悉了基本的代码规则后,就要把重点放在优化程序上,这点非常重要,在一般的简单运算中或许体会的不是很深,在数据库的操作中这点非常的明显。SUM函数就是优化程序的一个方法。
我们看下面的代码:
1)求单元格区域A1:H10的和
Sub mynz_49_1() '49 VBA代码中工作表函数SUM的利用方法
Dim rng As Range
Dim d As Double
Set rng = Range('A1:H10')
d = Application.WorksheetFunction.Sum(rng)
MsgBox rng.Address(0, 0) & '单元格的和为' & d
End Sub
2) 求单元格区域A1:H10正数的和
Sub mynz_49_2() '49 VBA代码中工作表函数SUM的利用方法
Dim rng, rngs As Range
Dim d As Double
Set rngs = Range('A1:H10')
For Each rng In rngs
If rng > 0 Then d = d rng
Next
MsgBox rngs.Address(0, 0) & '单元格正数的和为' & d
End Sub
代码窗口:
代码解析:mynz_49_1过程调用工作表Sum函数对工作表的单元格区域'A1:H10'进行求和计算。
l在VBA中调用工作表函数需要在工作表函数前加上WorksheetFunction属性。应用于Application对象的WorksheetFunction属性返回WorksheetFunction对象,作为VBA中调用工作表函数的容器,在实际应用中可省略Application对象识别符。
1)在实际的应用中,我们不仅要对指定的单元格区域进行简单的求和,还要利用上判断的条件,这个时候,如果只是利用WorksheetFunction的sum函数就有些吃力了,我们为此仍旧回到原始的单元格判断上来,如上面的mynz_49_2的过程。
下面我们实测一下上面的两个过程,首先运行的是mynz_49_1过程:
再次运行的mynz_49_2过程:这次的运行中就去除了负数部分。
所以在具体的应用中不要机械,要实际问题实际分析。
今日内容回向:
1 sum 函数在VBA中是如何应用的?
2 完成条件求和的思路是怎么样的?(注意:条件求和最好还是利用VBA先对的单元格判断然后再进行相应的处理)
3 如果要是判断上述区域是否为数字呢?该如何进行判断?
本讲内容参考程序文件:VBA代码解决方案修订(49-98).xlsm
我20多年的VBA实践经验,全部浓缩在下面的各个教程中:
【分享成果,随喜正能量】人生无惧,无论荣华富贵,还是低贱穷困,我们都要从容不迫,学会积极的看待人生,缘来了,则聚;缘去了,则散。。
联系客服