VBA中嵌套的If…Then语句和Select Case语句.pdf

VBA中嵌套的If…Then语句和Select Case语句.pdf

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
VBA中嵌套的If…Then语句和Select Case语句

VBA中嵌套的If…Then语句和Select Case语句 将⼀个If …Then语句或If …Then …Else语句放在另外⼀个If …Then语句或If …Then …Else 语句⾥⾯,你可以在你的VBA过程⾥作出更复杂的决定。这种⼀个If语句⾥包含另⼀ 个If 令块的结构称为嵌套的If语句。接下来的过程TestConditions是上节⾥的过程 WhatValue的修正版,演⽰嵌套的If …Then语句是如何⼯作的: Sub TestConditions() Range(A1).Select If IsEmpty(ActiveCell) T en MsgBox T e cell is empty . Else If IsNumeric(ActiveCell.Value) T en If ActiveCell.Value = 0 T en ActiveCell.Offset(0, 1).Value =zero ElseIf ActiveCell.Value 0 T en ActiveCell.Offset(0, 1).Value =positive ElseIf ActiveCell.Value 0 T en ActiveCell.Offset(0, 1).Value =negative End If Else ActiveCell.Offset(0, 1).Value = text End If End If End Sub 为了使过程TestConditions更容易理解,每个If …Then语句都显⽰为不同的格式,现在 你可以清楚地看到过程使⽤了三个If …Then程序块。 第⼀个If块 (粗体)检查当前单元格是否为空,如果为真,就会显⽰信息,然后VB将 跳过Else部分找到相应的End If ,该语句位于关键字End Sub之前。 如果当前单元格不为空,IsEmpty(ActiveCell)条件返回假,并且VB运⾏粗体Else下⾯ 的单下划线的If块。该单下划线的If …Then …Else语句就是嵌套在第⼀个If块 (粗体) 的。该语句检查当前单元格是否是个数字。注意,我们通过另⼀个内置函数Is umeric 来做这个。如果当前单元格的值不是⼀个数字,条件就为假,因此,VB跳到单下划 线的Else处,并且在B 1⾥输⼊“text” 。然⽽,如果当前单元格包含个数字时,VB就会 运⾏双下划线的If块,评估每种情况并作出相应的决定。 第⼀个If块 (粗体)被称为外部If语句,这个外部语句包含两个内部的If语句 (单下划 线和双下划线)。 技巧:嵌套语句 嵌套是 将⼀种控制结构放在另外⼀控制结构⾥⾯。你将在后⾯的循环结构⾥看到更 多的嵌套的例⼦。 Select Case语句 为了避免难以弄清的复杂的嵌套的If语句,你可以使⽤Select Case语句代替。它的语法 为: Select Case 测试表达式 Case 表达式1 如果表达式1匹配测试表达式的语句 Case 表达式2 如果表达式2匹配测试表达式的语句 Case 表达式N 如果表达式N匹配测试表达式的语句 Case Else 如果没有表达式匹配测试表达式要执⾏的语句 End Select 你在关键字Select Case和End Select之间放置任意多个条件以测试。⼦句Case Else是可 选的,当你希望可能有条件表达式返回假时使⽤它。在Select Case语句⾥,VB将每个 表达式和测试表达式相⽐较。 这⾥是Select Case语句背后的逻辑。当VB遇到Select Case⼦句,它记下测试表达式的 值。然后它前进到下⾯的第⼀个Case⼦句,如果这个表达式的值和测试表达式的值匹 配的话,VB就会执⾏语句直到遇到另外⼀个Case⼦句并且跳到EndSelect语句。然 ⽽,如果第⼀个Case⼦句后⾯的表达式测试结果和测试表达式不匹配时,VB就会检查 每⼀个Case⼦句,直到它找到⼀个匹配的为⽌。如果没有⼀个Case⼦句后⾯的表达式 匹配测试表达式的值的话,VB就会跳到Case Else⼦句并执⾏该语句直到遇到关键字 EndSelect 。注意,CaseElse⼦句是

文档评论(0)

ldj215322 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档