循环就是方便有效地重复相同或相似的操作。 Sub for循环()
x = 0 '初始值为0
x = x 1 'x=1
x = x 2 'x=3
x = x 3 'x=6
x = x 4 'x=10
x = x 5 'x=15
Range('a1') = x
End Sub 上面代码运行后单元格A1的值是15.很容易看懂,X初始值是0,然后经过一系列的累加运算,最后x=15. 上面每一条代码都是重复的操作,在VBA中循环就为此而生。
Sub for循环()
Dim x As Integer
Dim i As Integer
x = 0 第一个代码的重复操作,就被for...next循环代替了。要解释原理的话,可以这么理解:for...next循环里内置一个计数器,当i=1时,执行for...next之间的代码,完毕i自动加1,i变成2...直到i=6,超出了5的范围,循环结束,执行下一句代码。 for...next是一个整体,在写代码的时候,新手往往只写了for而忘记写next,因而提示 所以,建议写for循环的时候,写完for就回车敲一个next,写将结构写完整,再在for循环结构内写上其他代码。 循环能解决神马实际问题吗?这里结合前面学到的知识,来举个栗子,代替vlookup查询。
用函数=VLOOKUP(E2,A2:B6,2,0)非常容易得出布欧的战斗力是888.用VBA代码如下: Sub vvlookup() 代码注释: 1:声明变量i为整型。 2:依次循环单元格A2到单元格A6。 3:如果A列单元格的值和单元格E2的值(布欧)相等,那么就找对人了...如果不是布欧,那么继续找。 比如,按照顺序,先找到龟仙人,不对,再找下一个,天津饭,也不对,再找下一个,对了.....循环结构内重复的就是这样的找人操作,找到了触发条件读取其战斗力。 4:找到布欧后将其战斗力输入单元格F2。 5:if判断结构写法,结束判断。 6:进入下一次循环(重复相似相同操作),直到循环结束。 这里要补充的是: Range('a' & i) 是单元格Range和变量 i 结合的一种写法。其中a(有双引号)表示A列;i 是变量,声明了数据类型为整型,而循环当中又给i 赋值为 2到6,因此,在循环内,就是分别引用单元格A2到单元格A6.i=2,表示Range('a2')即单元格A2,注意Range()括号里面是文本和变量的链接,需要用&符号。前面文章有简要提过Range。 if...end if是VBA中的条件判断语句,在后面会有介绍,它是VBA中出场率十分高的结构之一,很多实际问题往往离不开if条件判断。 |
|
来自: L罗乐 > 《VBA基础入门教程》