打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
VBA入门07:For......Next循环

        循环就是方便有效地重复相同或相似的操作。

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') = xEnd Sub

        上面代码运行后单元格A1的值是15.很容易看懂,X初始值是0,然后经过一系列的累加运算,最后x=15.

        上面每一条代码都是重复的操作,在VBA中循环就为此而生。

    

Sub for循环()    Dim x As Integer    Dim i As Integer    x = 0
   'for...next构成完整的循环结构
   For i = 1 To 5           x = x i    Next    Range('a1') = x
End Sub

        第一个代码的重复操作,就被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: Dim i As Integer
2: For i = 2 To 6
3:   If Range('a' & i) = Range('e2') Then
4:      Range('f2') = Range('b' & i)
5:   End If
6: Next
End Sub

代码注释:

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条件判断。






本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
for循环语句用法实例
【跟老谭学Excel VBA】第二课:For Next循环初识
3段VBA代码,从此不再「复制-粘贴」
vba十四课
好用,容易理解的VBA积木代码
VBA学习笔记(11)VBA的循环
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服