Excel交流网
  • 设为首页|收藏本站|手机版
  • Excel-教程-技巧-培训视频

  • 网站首页
  • Excel教程
  • 关于我们
  • 新闻动态
  • Excel资源
  • 招贤纳士

Excel教程

Excel操作
Excel函数
Excel图表
Excel VBA
Excel 行业应用

联系方式

Excel中国 联系方式
电  话:400-855-3990
邮  编:528400
Email:support@zstm.com
网  址:www.excel-cn.com

当前位置:网站首页 > Excel教程 > Excel VBA
Excel VBA

实例比较ExcelVBA的四种选择结构和函数

程序代码的强大之处在于能够利用电脑运算速度快的特点,通过跳转实现选择和循环的控制结构,从而让程序具有智能、且能按预定的条件让电脑能不知疲倦地工作。

在程序中要经常进行各种选择或判断,且通过条件判断后根据不同的情况选择执行不同的代码块。

VBA有四种语句可以实现条件选择或判断的功能:if、select结构、iif和choose函数;各有其优势及应用的特定场合,而if结构则是可以完全实现或替代另外其它三种结构或函数的。


1 单条件判断之If与Select Case

Sub IF_Then语句()

'如果A1的值在36到37.5之间

If Range("a1").Value >= 36 And Range("a1").Value <= 17.5 Then

MsgBox "正常" '提示正常

Else '否则

MsgBox "异常" '提示异常

End If

End Sub

Sub Select_Case语句()

Select Case Range("a1").Value '以A1的值作为判断条件

Case Is < 36, Is > 37.5 '如果小于36,或者大于37.5

MsgBox "异常" '提示异常

Case Else '否则

MsgBox "正常" '提示正常

End Select

End Sub


2 多条件判断之If与Select Case

Sub 多条件之IF_Then()

If Sheet2.Range("a1").Value < 60 Then '如果Sheet2工作表的A1单元格小于60

Sheet2.Range("b1").Value = "不及格" '那么在B1显示不及格

ElseIf Sheet2.Range("a1").Value < 80 Then '如果Sheet2工作表的A1单元格小于80

Sheet2.Range("b1").Value = "及格" '那么在B1显示及格

ElseIf Sheet2.Range("a1").Value < 90 Then '如果Sheet2工作表的A1单元格小于90

Sheet2.Range("b1").Value = "良" '那么在B1显示良

ElseIf Sheet2.Range("a1").Value < 100 Then '如果Sheet2工作表的A1单元格小100

Sheet2.Range("b1").Value = "优" '那么在B1显示优

ElseIf Sheet2.Range("a1").Value = 100 Then '如果Sheet2工作表的A1单元格小1060

Sheet2.Range("b1").Value = "满分" '那么在B1显示满分

End If

End Sub

Sub 多条件之Select_Case()

Select Case Sheet2.Range("a1").Value '以Sheet2工作表的A1单元格作为判断条件

Case Is < 60 '如果小于60

Sheet2.Range("b1").Value = "不及格" '以Sheet2工作表的A1单元格作为判断条件

Case Is < 80 '如果小于80

Sheet2.Range("b1").Value = "及格" '以Sheet2工作表的A1单元格作为判断条件

Case Is < 90 '如果小于90

Sheet2.Range("b1").Value = "良" '以Sheet2工作表的A1单元格作为判断条件

Case Is < 100 '如果小于100

Sheet2.Range("b1").Value = "优" '以Sheet2工作表的A1单元格作为判断条件

Case 100 '如果等于100

Sheet2.Range("b1").Value = "满分" '以Sheet2工作表的A1单元格作为判断条件

End Select

End Sub

在许多情况下,如果仅需要检验与单个自变量有关的可能范围,对于这种情况的判断选择,使用Select Case能更加简化条件表达式,让代码显得更直观和简洁。


3 IIF函数

Sub Excel版本号()

Dim Ver As String '声明变量,用于表示版本号

'获取Excel的版本号,并将它赋值给变量。Excel的开发代号采用11.0、12.0这种编号方式,所以再用IIF函数转换成Excel 2003这种形式的版本号

Ver = Application.Version

'通过IIF函数转换开发代号为符合大众阅读习惯的版本号

MsgBox IIf(Ver = "11.0", "Excel 2003", IIf(Ver = "12.0", "Excel 2007", IIf(Ver = "14.0", "Excel 2010", IIf(Ver = "15.0", "Excel 2013", "您的OFFICE版本比较古老"))))

End Sub

'代码思路分析:

'Application.Version代表Excel的版本号,通常是11.0、12.0、14.0等等编码方式

'11.0对应Excel 2003,12.0对应用Excel 2007,14.0对应Excel 2010,15.0对应Excel 2013

'当取出Excel的版本后,IIF函数可以根据该值返回对应的Excel的年号版本


4 Choose 函数

Sub 打开搜索引擎()

'设置一个标签

Star:

'弹出一个输入框,并将用户输入的值赋值给变量Url

URL = Application.InputBox("输入1:百度" + Chr(10) + "输入2:谷歌" + Chr(10) + "输入3:搜狗" + Chr(10) + "输入4:必应", "打开搜索引擎", 2, , , , , 1)

'如果变量的值小于1或者大于4

If URL < 1 Or URL > 4 Then

MsgBox "允许范围是1到4" '提示用户超出允许范围,

GoTo Star '然后跳转到标签处继续执行(只要输入非法值就继续执行,直到符合要求为止)

Else '否则

'调用explorer.exe对象,打开指定网站。要注意网址是explorer.exe的参数,所以它们之间有一个空格

Shell "explorer.exe " & Choose(URL, "http://www.xxx.com/", "http://www.xxx2.com.hk/", "http://www.xxx3.com/", "http://cn.xx.com/"), vbMaximizedFocus

End If

End Sub

'代码思路分析:

'首先设置一个标签,当用户录入数值错误时可以返回此标签处继续执行,

'当然要实现同样的功能也可以改用循环语句。当学会了下一节的循环语句后,读者可以练习一下改用循环语句实现同等功能。

'然后通过Application.InputBox方法创建一个输入框,让用户输入数值,从而根据数值决定打开哪一个网址。

'接着要判断用户录入的数值是否属于1、2、3、4几个值中的一个,如果不是那么返回标签处继续执行,等待用户重新录入数值。


点击次数:  更新时间:2017-08-14 16:40:49  【打印此页】  【关闭】
上一条:Excel 批量合并相同内容单元格  下一条:Excel实现提取2017年所有周日的日期
本站动态|在线留言|在线反馈|友情链接|会员中心|站内搜索|网站地图|网站管理

中山市天鸣科技发展有限公司 版权所有 1999-2020 粤ICP备10043721号

广东省中山市西苑广场富贵阁 528400

QQ:4008553990 电话:0760-88315075

Excel交流网主要交流Excel教程、Excel技巧、Excel培训、Excel函数公式、Excel图表以及Excel VBA,为网友提供一个最全的Excel交流网站

Excel教程|Excel技巧|Excel培训|Excel函数公式|Excel图表|VBA

Powered by MetInfo 5.3.12 ©2008-2022  www.metinfo.cn