《VBA代码办理方案》这套教程是我最早推出的教程,目前已经是第二版修订了。这套教程定位于入门后的提高,在学习这套教程过程中,侧重点是要理解及节制我的“积木编程”思想。要灵巧利用教程中的实例像搭积木一下把自己喜好的代码摆好。
这套教程共三册,一百四十七讲,内容覆盖较广,也是低级和中级间的过度教程,改版后的内容紧张是供应程序源码文件及代码改动为32位和64位兼用代码。今后一段韶光会给大家陆续推出。今日的内容是第3讲:选择区域的自动打算
第三讲 利用VBA,在EXCEL表格中实现选择区域自动打算
今日和大家分享一个VBA的小实例,也是在事情中会用到的。什么例子呢?我们在利用EXCEL时,如果选择了几个单元格会不才面直接读出和是多少,这个功能十分的方便,那么这个功能能否做到为所欲为呢?比如求和,比如打算选择单元格的个数,比如打算所选单元格的负值时多少,比如打算所选单元格的数值大于10的是多少,比如打算所选单元格是数值的为多少,当然,在实际的事情中有很多的情形,比如要在报表中直接知道有多少出勤人数,产量高过均匀值的有多少人,我们无法逐一的给出代码,就以最常见的选择区域求和来做一个示范吧。

该如何实现这个功能呢?本日我们就利用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 = k + 1
If IsNumeric(d.Value) Then
t = t + d.Value
End If
Next
MsgBox "所选区域数值之和为:" & t & ",所选区域单元格共:" & k & "个"
End Sub
代码截图:
2 代码解读及实现的效果
我们先来看看对上述代码的阐明:
1) Sheets("3").Select,解释这个功能是在”3”的事情表中来实现的。
2) Dim d 定义d这个变量时可变的,没有给他详细的变量名称,读者可以自己查查我之前的文章,可以看到此时打算机分配给这个变量的详细内存是多大
3) For Each d In Selection 用的是FOR EACH的循环语句,遍历的元素是SELECTION中的各个元素,这个元素用d表示
4) k = k + 1 用K来表示SELECTION中的单元格的个数,有一个就加上1
5) IsNumeric(d.Value) 是判断单元格是否是数字。这时用到IS函数,对付是否是数字的判断,在VBA和EXCEL中是不同的函数,要牢记。
6) t = t + d.Value 如果是数字就累加求和
7) MsgBox "所选区域数值之和为:" & t & ",所选区域单元格共:" & k & "个" 遍历完成所有元素后弹出对话框,给出结果,关于MSGBOX函数后面还有讲解。
下面我们看看代码的运行结果:
我们选择了上述的9个区域,数字为1,3,5,7,9,9,9,9 看下面程序的运行结果:
完备精确。这就实现了我们的预期。
当然,我上面的代码只是实现了浩瀚的问题中的一个,如果是求其他的问题只是将代码略加改动即可,如,求选择区域大于10的,只要改成:d.value>10,在做相应的计数即可。这便是VBA的方便之处。
今日内容回向:
1 为了实现选择区域的自动打算,须要哪些函数?
2 为了实现选择区域的自动打算,须要用到哪个循环语句?
3 如何实现选择区域的自动求出不是数字的单元格个数?
本讲内容参考程序文件:VBA代码办理方案修订(1-48).xlsm
我20多年的VBA实践履历,全部浓缩不才面的各个教程中:
第7套教程(共三册):《VBA之EXCEL运用》:是对VBA基本的讲解
第1套教程(共三册):《VBA代码办理方案》:是入门后的提高教程
第4套教程(16G):VBA代码办理方案之视频(第一套的视频讲解)
第3套教程(共两册):《VBA数组与字典办理方案》:是对数组和字典的专题讲解
第2套教程(共两册):《VBA数据库办理方案》:是对数据库的专题讲解
第6套教程(共两册):《VBA信息获取与处理》:讲解VBA的网络及跨程序运用
第5套教程(共两册):VBA中类的解读和利用:类及接口技能的讲解
第8套教程(共三册):VBA之Word运用(最新教程):word中VBA的利用
上述教程的学习顺序:
① 7→1→3→2→6→5或者7→4→3→2→6→5。
② 7→8
如何学习VBA呢? 概括的说便是: 学习过程中要信、解、受、持,更要有回向的业力。无论您在学习的任何阶段,都要对照教程的知识点加持自己的实际事情,总会有丰硕的收成。