龙空技术网

VBA代码解决方案:VBA代码中,EXCEL工作表函数SUM的利用方法

VBA语言専攻 2316

前言:

当前兄弟们对“vba按条件累加”可能比较着重,你们都想要知道一些“vba按条件累加”的相关知识。那么小编同时在网络上搜集了一些关于“vba按条件累加””的相关文章,希望小伙伴们能喜欢,大家一起来了解一下吧!

大家好,我们今日继续讲解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 如果要是上述区域有数字呢?该如何进行判断?

标签: #vba按条件累加