当前位置:网站首页>Excel-VBA 快速上手(二、条件判断和循环)
Excel-VBA 快速上手(二、条件判断和循环)
2022-06-26 14:06:00 【三叔笔记】
文章目录
一、条件判断
1.1. IF 判断
语法
IF 判断的语法和其他编程语言大同小异
If 条件判断 Then
'条件判断成立时的逻辑
ElseIf 条件判断 Then
'条件判断成立时的逻辑
Else
'条件都不满足时的逻辑
End If
示例
代码:
'函数内对参数进行条件判断
Function judge(num)
If num Mod 2 = 0 Then
Debug.Print "参数是偶数"
ElseIf num Mod 2 <> 0 Then
Debug.Print "参数是奇数"
Else
Debug.Print "非法数字"
End If
End Function
'调用函数
Sub main()
judge 2
End Sub
运行效果:
1.2. Select Case 判断
普通语法
Select Case '要判断的变量、也可使用表达式,相当于对表达式结果的值进行判断
Case Is '大于、小于、等于、大于等于、小于等于、不等于判断
'满足条件的逻辑
Case Is '大于、小于、等于、大于等于、小于等于、不等于判断
'满足条件的逻辑
Case Else
'条件都不满足时的逻辑
End Select
普通语法示例
代码:
'函数内对参数进行条件判断
Function judge(num)
Select Case num
Case Is > 0
Debug.Print "参数是正数"
Case Is < 0
Debug.Print "参数是负数"
Case Else
Debug.Print "参数是0"
End Select
End Function
'调用函数
Sub main()
judge 0
End Sub
运行效果:
数值区间语法
Select Case '要判断的变量、也可使用表达式,相当于对表达式结果的值进行判断
Case 区间起始数值 To 区间结束数值
'满足条件的逻辑
Case Else
'条件都不满足时的逻辑
End Select
数值区间语法示例
代码:
'函数内对参数进行条件判断
Function judge(num)
Select Case num
Case 0 To 100
Debug.Print "参数区间是0-100"
Case 101 To 200
Debug.Print "参数区间是100-200"
Case Else
Debug.Print "参数是其他区间"
End Select
End Function
'调用函数
Sub main()
judge 100
End Sub
运行效果:
1.3. IIF 判断
IIF判断与其他编程语言中的三目运算差不多,适用于按条件赋值的场景
语法
IIf(条件判断, 满足条件时的返回值, 不满足条件时的返回值)
示例
代码:
'函数内对参数进行条件判断
Function judge(num)
Debug.Print IIf(num Mod 2 = 0, "参数是偶数", "参数是奇数")
End Function
运行效果:
二、循环
2.1. For 循环
For 循环可以按照次数进行循环,也可以对数组内容进行遍历
2.1.1. 按次数循环
语法
For 变量名 = 起始数值 To 终点数值 Step 步长
循环体
Next 变量名
示例
代码:
Sub main()
For num = 1 To 20 Step 2
Debug.Print num
Next num
End Sub
运行效果:
2.1.2. 数组遍历
语法
For Each 数组元素临时变量 In 数组
循环体
Next 数组元素临时变量
示例
代码:
Sub main()
Dim items
items = Array(1, 2, 3, 4, 5, 6)
For Each Item In items
Debug.Print Item
Next Item
End Sub
运行效果:
2.2. Do 循环
Do Loop Until 是满足条件后中止循环,Do While Loop 是满足条件后开始循环,Do Loop Until 不管条件是否满足,
都会先执行一次循环体内容,也就是说 Do Loop Until 最少会循环一次
2.2.1 Do Loop Until
语法
Do
循环体
Loop Until 中止条件
示例
代码:
Sub main()
Dim count As Integer
count = 1
Do
count = count + 1
Debug.Print count
Loop Until count = 2
End Sub
运行效果:
2.2.2 Do While Loop
语法
Do While 循环条件
循环体
Loop
示例
代码:
Sub main()
Dim count As Integer
count = 1
Do While count < 10
Debug.Print count
count = count + 1
Loop
End Sub
运行效果:
2.3 提前中止循环
可以使用 End
关键字来提前中止循环,常用的场景是在集合中查找某个元素,当元素找到后就没必要继续循环下去
示例
代码:
Sub main()
Dim count As Integer
count = 1
Do While count < 10
Debug.Print count
count = count + 1
If count = 3 Then
End
End If
Loop
End Sub
运行效果:
边栏推荐
- Numpy basic use
- [solo π] ADB connects multiple mobile phones
- Mark: unity3d cannot select resources in the inspector, that is, project locking
- 信息学奥赛一本通 1405:质数的和与积 (思维题)
- 710. 黑名单中的随机数
- Mark一下 Unity3d在Inspector中选中不了资源即Project锁定问题
- Sword finger offer 05.58 Ⅱ string
- 获取两个dataframe的交并差集
- MySQL主从复制与读写分离
- 这才是优美的文件系统挂载方式,亲测有效
猜你喜欢
MySQL主从复制与读写分离
【云原生】 ”人人皆可“ 编程的无代码 iVX 编辑器
Stream常用操作以及原理探索
Mark: unity3d cannot select resources in the inspector, that is, project locking
Server create virtual environment run code
2022年最新贵州建筑八大员(机械员)模拟考试题库及答案
Login authentication service
How to convert data in cell cell into data in matrix
年薪50万是一条线,年薪100万又是一条线…...
Electron
随机推荐
网上股票开户安不安全?谁给回答一下
子查询的使用
Chinese output of PostGIS console is garbled
vmware部分设置
A标签去掉下划线
【雲原生】 ”人人皆可“ 編程的無代碼 iVX 編輯器
VMware partial settings
VIM auto fill auto indent explanation
Atcoder bit operation & Conclusion + formula derivation
Use abp Zero builds a third-party login module (II): server development
The engine "node" is inconsistent with this module
Sword finger offer 40.41 Sort (medium)
ArcGIS secondary development - arcpy delete layer
聊聊 RPA 方向的规划:简单有价值的事情长期坚持做
券商经理给的开户链接办理股票开户安全吗?我想开个户
GDAL multiband synthesis tool
Leaflet loading ArcGIS for server map layers
一个快速切换一个底层实现的思路分享
ArcGIS secondary development -- arcpy batch automatic map publishing service
Pychar remotely connects to the server to run code