快好知 kuaihz订阅观点

 

笨方法学VBA:基本语句

本文转载自公众号:四零三工作室,原创作者:怪盗福尔摩斯,本文著作权归原创作者所有,本人收藏此文仅作为学习之用,不作其他目的,如有侵权,请联系我删除。

正常来说,满足有变量,有运算和有控制就算是一门编程语言了。前面我们已经跟大家讲了变量与运算,今天就跟大家讲一下最后的控制吧。控制是由语句构成的,下面就结合实际案例来跟大家讲一下VBA的基本语句

1.  If…Then…Else语句

If…Then…Else语句其实和EXCEL的if函数作用是一样的,如果符合条件就执行语句,否则执行另一语句,举例如下:

执行结果如下:

2.  ElseIf

ElseIf是针对更多判断使用的,举例如下:

执行结果:

3.  Select Case语句

前面讲的If语句虽然可以解决多次判断的问题,但是当面对三次或者更多策略中做出选择时,使用Select Case语句更加合适,下面以一个案例来给大家进行讲解。

你的老板让你做单位的职工考核得分表:

你要根据下面的考核得分给职工评定星级:

(公众号后台回复“员工数据”可以得到表格)

用Select Case语句可以这样实现:

Select Case后面跟的是测试表达式,它是程序要进行判断和比较的值;Case后面跟的是表达式列表,是用来和测试表达式进行比较的值,可以是To或Is的关键字,也可以是用英文逗号隔开的表达式列表。如果测试表达式是整数,Case 1 To 3和Case 1,2,3是等效的。Case Else子句是可选语句,如果找不到与测试表达式匹配的值,就执行该子句。

写完这个宏之后,你发现却无法用于现实中,因为数据表中的员工太多了,不可能遇见一个员工修改并执行一次代码吧,所以我们引入循环语句来解决这个问题。

4.  For…Next语句

写For循环的时候,要先定义循环变量(代码中的i)的值,给它一个初值和终值,也就是2 To 19,步长的话必须为整数,如果为1可以省略,不为1要写上,步长也可以是负整数,当是负整数的时候,循环变量的初值必须大于终值。最后的Next i,执行一次,i的值会加上步长值继续执行,比如上面的代码第一次i为1,第二次为2,一直到20(大于循环体终值19)就会跳出循环体。

5.  While…Wend语句

与For循环语句功能相同的语句还有While…Wend语句。用它解决上面的问题的代码如下:

执行情况与For语句类似,我就不再阐述了,大家自行试着写写体会一下。

但是,代码实际投入使用之后,又遇到了一个新的问题,每个月职工可能会发生变化,并不能确定确切的数字,那怎么办才能做到随数据变化而变化呢?这时候就得用到Do While语句了。

6.   Do While语句

用Do While语句解决上面的问题,代码如下:

Do While语句后为逻辑表达式,它的循环条件是当逻辑表达式的值为真时,执行循环体(Do和Loop之间的语句),否则执行Loop后的语句。Loop标志语句结束,返回Do语句处,再次判断循环条件。如果想在Loop后写逻辑表达式,可以这样做(以上面例子为例):

需要注意的是,Do While语句是当逻辑表达式为假的时候退出循环,但结尾判断式的语句是在执行一次循环体之后再判断循环条件,因此,当循环条件一开始就是假的时候,比开头判断式要对执行一次循环体,其他时候执行次数相同。

7.  Do Until语句

与Do While相反的语句,While是逻辑判断式为假退出循环,Until是逻辑判断是为真退出循环,其他都是一样的。大家尝试着用Do Until语句解决上面的问题吧。

8.  For Each…Next语句

这条语句是用于以数组或者集合作为循环条件的循环体使用的,使用起来类似于For循环,用实际案例说明形象一点,比如你想将1到100的自然数写到A1:A100单元格区域,用For Each…Next语句可以这样做:

For Each…Next语句不需要定义循环条件,只需要定义变量,变量的类型与集合类型相同。(数组的话则为Variant)需要注意的是,当在一个数组里循环的时候,不能对数组元素进行赋值或重新赋值,对于已经赋值的对象数组也只能修改数组元素。

9.  With语句

With语句是用于简化代码用的,举例如下:

这是一段代码,你会发现其中你将Worksheets("Sheet1").Range("A1")写了很多遍,这会大大降低你的效率,如果你不想多次输入重复的代码,就可以使用with优化:

合理使用with语句,不但可以减少代码的输入量,还可以提高程序的执行效率,所以建议大家经常使用。

以上便是VBA的基本语句,大家私下需要多多练习,只有熟悉掌握基本语句,才可以在后面写出优雅的代码,让程序的执行更加有效率。

本站资源来自互联网,仅供学习,如有侵权,请通知删除,敬请谅解!
搜索建议:笨方法学VBA:基本语句  方法学  方法学词条  语句  语句词条  基本  基本词条  VBA  VBA词条  
综合

 电视盒子自带软件卸载

很多朋友经常抱怨家里的电视或盒子无法卸载软件,这就导致原本就不大的空间内存,还要被这些没用的垃圾软件占用。面对这个问题,小智选择这样做。方法一:首先,下载当贝市...(展开)

综合

 LabVIEW编程基础:以实例学...

LabVIEW又称为G语言,简单易学、形象直观,采用图形化的编程方式,是专为测试、测量和控制应用而设计的系统工程软件。前面几篇文章依次讲解了LabVIEW中顺序...(展开)

综合

 LabVIEW中结构体控件编程示...

1、结构体简介LabVIEW中的结构体(中文版翻译为“簇”)是常用的一种数据结构类型,一个结构体控件中可以包含任意多个任意类型的不同元素。与数组不同的地方在于,...(展开)