大家好,我们今日继续讲解VBA代码解决方案的第49讲内容(注:在整理之前的VBA系列文章中合并了一些文章,重新成集排序为第49讲,所以从这篇文章开始以新的排序计算):VBA中SUM函数的利用方法。对多个单元格求和,是统计工作中非常普遍的工作,在之前的函数讲解过程中,我下了很大的气力来讲解SUM函数及其衍生的函数,在数组的讲解中也讲了此函数在数组中的利用,可以说SUM函数在统计工作中起着举足轻重的作用,如果把这个函数利用好了,对自己的工作是非常方便的,今日我在VBA中就此函数的利用及规律再次加以讲解。 在对工作表的单元格区域进行求和计算时,使用工作表Sum函数比使用VBA代码遍历单元格进行累加求和效率要高得多,我们在熟悉了基本的代码规则后,就要把重点放在优化程序上,这点非常重要,在一般的简单运算中或许体会的不是很深,在数据库的操作中这点非常的明显。SUM函数就是优化程序的一个方法。 我们看下面的代码。 Sub MyrngSum() 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 Sub MyrngSum2() 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 代码解析: MyrngSum过程调用工作表Sum函数对工作表的单元格区域'A1:H10'进行求和计算。 在VBA中调用工作表函数需要在工作表函数前加上WorksheetFunction属性。应用于Application对象的WorksheetFunction属性返回WorksheetFunction对象,作为VBA中调用工作表函数的容器,在实际应用中可省略Application对象识别符。 在实际的应用中,我们不仅要对指定的单元格区域进行简单的求和,还要利用上判断的条件,这个时候,如果只是利用WorksheetFunction的sum函数就有些吃力了,我们为此仍旧回到原始的单元格判断上来,如上面的MyrngSum2的过程。 下面我们实测一下上面的两个过程: 代码窗口: 首先运行的是MyrngSum过程: 再次运行的MyrngSum2过程:这次的运行中就去除了负数部分。 所以在具体的应用中不要机械,要实际问题实际分析。 今日内容回向: 1 sum 函数在VBA中是如何应用的? 2 完成条件求和的思路是怎么样的? 3 如果要是上述区域有数字呢?该如何进行判断? |
|