for in range语句_VBA-从一而终For循环

d59e4e0dd1d6ebdfc83c7a7d8fe3cbf4.png

今天,我们来学习下VBA中出镜率不亚于IF语句的,FOR循环语句。

掌握了这两种语句,可以搞定90%的基本功能。

组合起来使用,更是其乐无穷!

接下来,我们将学习For循环语句的两种基本结构。

主要分为:①For ....Next循环结构, ② For Each ....Next 循环结构。

01 For....Next循环结构

首先,我们来了解下For ....Next循环结构。

它的主要过程是,我们先设定一个范围,在这个范围中,系统会不断重复执行我们设计的一个或几个步骤,输出结果。

当不在范围内时,这些步骤不会被执行。

打个比方,我们要炒蛋,炒几个蛋,放什么调料,什么时候翻面,什么时候放调料,我们都预先设定好了,我们需要期待的,就是会炒出什么样的蛋。

For Next 结构的代码格式如下:

For i=初始值 to 结束值 Step 步长

操作1

操作2

......

Next

接下来,我们举个例子来说明上面代码的意思。

例如:卤蛋是个投资小白,他听从卤飞师兄的建议,每个月固定投资1500块钱,投资一年,假定每个月的收益是本金的0.8%。这个时候,初始值就是1月份,结束值就是12月份,步长就是1个月。这3个值确定了循环的次数。

然后,操作1就是每个月投资1500块钱。操作1,操作2,……操作N,就是我们让系统重复执行的步骤。当时间变为明年1月份时,已经不在我们约定的范围内(今年1月-今年12月),设定的操作也就不会再执行了。

对应的VBA代码,核心就是:

For i = 1 To 12 (step 1)

卤蛋这个月所有的钱=卤蛋上个月所有的钱 * (1+收益率) +1500

Next(步长为1时,Step 1 可以省略)

当投资金额达到1万块的时候,卤蛋发现自己很有钱了,决定不继续投资了。对应的VBA代码如下:

For i = 1 To 12

If 投资金额>10000 Then

Exit For '跳出循环

Else

卤蛋这个月所有的钱=卤蛋上个月所有的钱 * (1+收益率) +1500

投资金额= 截止上月累计投资金额+1500

End If

Next

02 For Each....Next循环结构

接下来,我们来了解下For Each ....Next循环结构。

它和For....Next结构相似,唯一的区别在于,加上了Each,Each后面会有一个对象,比如Range,Workbook等。

关于的对象的说明,可以查看下面这篇文章。

数据大作手:写VBA代码前你所需要掌握的概念(上)​zhuanlan.zhihu.com
51021617abbb031c6054680a4a7360ac.png

For Each ....Next结构的代码格式如下:

For each 对象变量 in 集合 操作1

操作2 ......

Next

例如:在A1:D6这一区域,每个单元格输入一个随机值,将所有的值求和,判断是不是偶数。

For Each i In Range("A1:C6")

i.Value = Int(Rnd() * 100) + 1

sum_range = i.Value + sum_range

Next

在这里,对象变量就是i,也就是某一个单元格。

集合,就是A1:D6这一区域。

完整版代码如下:

Sub 判断偶数()

Dim sum_range As Integer

sum_range = 0 '定义单元格求和的初始值为0

For Each i In Range("A1:C6") '在符合A1:C6 范围内的条件时做循环

i.Value = Int(Rnd() * 100) + 1 '随机生成1-100的整数值

sum_range = i.Value + sum_range '将单元格的值求和

Next

If sum_range Mod 2 = 0 Then '判断是不是偶数

MsgBox "这些单元格的求的值是" & sum_range & "是偶数哦"

Else

MsgBox "这些单元格的求的值是" & sum_range & "不是偶数哦"

End If

End Sub

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值