【分享成果,随喜正能量】得失随缘,心无增减。生活,不论如何都会过去,不会永远甜,也不会永远苦,用一颗随遇而安的心态去生活,该吃饭吃饭,该睡觉睡觉,醒来便是重生。。
我给VBA的定义:VBA是个人小型自动化处理的有效工具。利用好了,可以大大提高自己的劳动效率,而且可以提高数据处理的准确度。我推出的VBA系列教程共九套和一部VBA汉英手册,现在已经全部完成,希望大家利用、学习。
如果您只是一般的职场VBA需求,可以打包选择7.1.3.9教程和汉英手册,第7套教程是入门,第1套教程是入门后的提高,第3套教程字典是必备的VBA之精华,第9套教程是实用的典型案例讲解。这四套教程内容掌握后足以处理一般工作中的问题,实际写代码的时候再辅助代码汉英手册,足矣!如果您想进一步提高,就需要选择高级阶段的教程了。
VBA是面向对象编程的语言,博大精深。很多朋友咨询VBA的学习方法,我会陆续给大家讲解一些我的经验,大家可以慢慢体会。今日的内容是:VBA应用实例:实现选择区域自动计算
3.2.2 应用实例“实现选择区域自动计算”
在实例的讲解中,我都会给出实际应用的场景,如果您是职场人员,或多或少都会在这些实例中找到自己工作中影子,这是因为我的例子是取自于实际工作,是经典中的经典,是实际工作的延伸与规范处理的精华。
《VBA代码解决方案》中我们接触到的第一个实例就是“实现选择区域自动计算”,我们看看这个实例的应用场景:在使用EXCEL时,如果选择了几个单元格会在下面直接读出和是多少,这个功能十分方便。那么这个功能能否做到随心所欲呢?比如求和,比如计算选择单元格的个数,比如计算所选单元格的负值时多少,比如计算所选单元格的数值大于10的是多少,比如计算所选单元格是数值的为多少,当然,在实际的工作中有很多的情况,比如要在报表中直接知道有多少出勤人数,产量高过平均值的有多少人,我们无法一一的给出代码,就以最常见的选择区域求和来做一个示范吧。
这个实例相信很多职场朋友都有这样的疑问,但往往由于自己的工作比较忙,或者不求甚解,再或者excel中给出了大量的应用,认为就是全部了:
但是,当您了解了VBA,知道了VBA的玩法,肯定不会再局限与此了,“那么求选择区域中值高于100的单元格和?” 该如何进行呢?
我们先看教程中给出的经典代码:
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
我们先理解一下,上述代码有几个关键点:
① for each 遍历循环
② IsNumeric(d.Value) 是判断单元格值的类型
③ k = k + 1:t = t + d.Value前者是典型的单纯的计数,后者是典型的累加处理
④ MsgBox 是和用户的交互,汇报程序的计算结果
短短的几行代码,含有的知识点也很多。在理解了上述代码后,我们修正为:
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
If d.Value>100 then t = t + d.Value
End If
Next
MsgBox "所选区域数值大于100的单元格之和为:" & t & ",所选区域单元格共:" & k & "个"
End Sub
这就实现了数值大于100单元格的求和了。是的,这就是VBA作为外接程序接口的作用。当您了解了这些玩法,会赞叹VBA的神奇。同时更要理解“积木编程”思想。
如果我们最初的代码是一块积木,当我们需要时要“略加修改”再放到需要的位置,这是积木编程的精髓。
【分享成果,随喜正能量】
我20多年的VBA实践经验,全部浓缩在下面的各个教程中:
【分享成果,随喜正能量】人生苦短,糊涂一点不较真,大度一点不生气,凡事看淡,一切随缘,人生本过客,何必千千结。。