第3讲:VBA实现选择区域的自动计算

【分享成果,随喜正能量】这个世界,总有你不喜欢的人,也总有人不喜欢你 。不管别人怎么对待你 , 都要珍视自己 。刻意去讨人喜欢,折损的,只能是自我的尊严 。。
《VBA代码解决方案》(10028096)这套教程是我最早推出的教程,目前已经是第三版修订了 。这套教程定位于入门后的提高,在学习这套教程过程中 , 侧重点是要理解及掌握我的“积木编程”思想 。要灵活运用教程中的实例像搭积木一样把自己喜欢的代码摆好 。
这套教程共三册 , 一百四十七讲 , 内容覆盖较广,也是初级和中级间的过渡教程,改版后的内容主要是提供程序源码文件及代码修正为32位和64位兼用代码 。今后一段时间会给大家陆续推出 。今日的内容是第3讲:VBA实现选择区域的自动计算

第3讲:VBA实现选择区域的自动计算

第三讲 利用VBA,在EXCEL表格中实现选择区域自动计算

今日和大家分享一个VBA的小实例,也是在工作中会用到的 。什么例子呢?我们在使用EXCEL时 , 如果选择了几个单元格会在下面直接读出和是多少,这个功能十分的方便 , 那么这个功能能否做到随心所欲呢?比如求和,比如计算选择单元格的个数,比如计算所选单元格的负值时多少,比如计算所选单元格的数值大于10的是多少 , 比如计算所选单元格是数值的为多少,当然,在实际的工作中有很多的情况 , 比如要在报表中直接知道有多少出勤人数,产量高过平均值的有多少人 , 我们无法一一的给出代码,就以最常见的选择区域求和来做一个示范吧 。

1 利用For Each循环实现场景需求的代码

该如何实现这个功能呢?今天我们就利用VBA采用FOR EACH循环来实现我们的需求 。
下面的代码实现了选择区域自动求和和选择单元格个数的自动计算功能:
Sub mynz_3() '第3讲:在EXCEL表格中实现选择区域的自动计算
Dim t As Long
Dim k As Long
Dim d
Sheets("3").Select
k = 0
For Each d In Selection
k = k1
If IsNumeric(d.Value) Then
t = td.Value
End If
Next
MsgBox "所选区域数值之和为:" & t & ",所选区域单元格共:" & k & "个"
End Sub
代码截图:
第3讲:VBA实现选择区域的自动计算

2 代码解读及实现的效果

我们先来看看对上述代码的解释:
1) Sheets("3").Select,说明这个功能是在”3”的工作表中来实现的 。
2) Dim d 定义d这个变量时可变的,没有给他具体的变量名称,读者可以自己查查我之前的文章,可以看到此时计算机分配给这个变量的具体内存是多大
3) For Each d In Selection 用的是FOR EACH的循环语句,遍历的元素是SELECTION中的各个元素,这个元素用d表示
4) k = k1 用K来表示SELECTION中的单元格的个数,有一个就加上1
5) IsNumeric(d.Value) 是判断单元格是否是数字 。这时用到IS函数 , 对于是否是数字的判断,在VBA和EXCEL中是不同的函数,要切记 。
6) t = td.Value 如果是数字就累加求和
7) MsgBox "所选区域数值之和为:" & t & ",所选区域单元格共:" & k & "个" 遍历完成所有元素后弹出对话框,给出结果,关于MSGBOX函数后面还有讲解 。
下面我们看看代码的运行结果:
第3讲:VBA实现选择区域的自动计算

我们选择了上述的9个区域,数字为1,3,5,7,9,9,9,9 看下面程序的运行结果:
第3讲:VBA实现选择区域的自动计算

完全正确 。这就实现了我们的预期 。
当然,我上面的代码只是实现了众多的问题中的一个,如果是求其他的问题只是将代码略加改动即可,如,求选择区域大于10的,只要改成:d.value>10,在做相应的计数即可 。这就是VBA的方便之处 。
今日内容回向:
1 为了实现选择区域的自动计算,需要哪些函数?
2 为了实现选择区域的自动计算,需要用到哪个循环语句?
3 如何实现选择区域的自动求出不是数字的单元格个数?
本讲内容参考程序文件:VBA代码解决方案(1-19).xlsm
第3讲:VBA实现选择区域的自动计算

我20多年的VBA实践经验,全部浓缩在下面的各个教程中:
第3讲:VBA实现选择区域的自动计算

【第3讲:VBA实现选择区域的自动计算】【分享成果,随喜正能量】不要用无数次的折腰,去换得一个漠然的低眉 。我们终其一生 , 不是为了满足所有人,而是只需要找到和自己同频共振的那一部分人 。。

相关经验推荐