条件判断语句.docVIP

  • 5
  • 0
  • 约4.96万字
  • 约 16页
  • 2017-02-09 发布于河南
  • 举报
条件判断语句

条件判断语句 一、IIf函数(三个参数都为必选参数,这有别于IF函数) 语法:IIf(expr, truepart, falsepart) 部分 描述 expr 必要参数。用来判断真伪的表达式。 truepart 必要参数。如果 expr 为 True,则返回这部分的值或表达式。 falsepart 必要参数。如果 expr 为 False,则返回这部分的值或表达式。 说明 由于 IIf 会计算 truepart 和 falsepart,虽然它只返回其中的一个。因此要注意到这个副作用。例如,如果 falsepart 产生一个被零除错误,那么程序就会发生错误,即使 expr 为 True。 例1: Rem 如果A1单元格大于或等于60,则B1单元格显示“及格”,否则为“不及格” [b1] = IIf([a1] = 60, 及格, 不及格) 例2: Sub 根据月份判断季度() Dim Months As Byte 声明变量 Star: 设置一个标签 弹出对话框让用户录入月份,默认为当前月份 Months = Application.InputBox(请输入月份,只能是数字, 月份, Month(Date), , , , , 1) 如果录入的数值小于1或者大于12则返回标签Star处继续执行 If Months 1 Or Months 12 Then MsgBox 只能在1到12之间: GoTo Star 四个IIF嵌套运用,其中每个IIF的第一参数使用双条件,在双条件时需要用And连接 MsgBox IIf(Months 1 And Months 4, 一季度, IIf(Months 3 And Months 7, 二季度, IIf(Months 6 _ And Months 10, 三季度, IIf(Months 9 And Months 1, 四季度, 录入错误)))) End Sub 二、单行形式If...Then 在单行形式中,按照 If...Then 判断的结果也可以执行多条语句。所有语句必须在同一行上并且以冒号分开,如下面语句所示: 例1: If A 10 Then A = A + 1 : B = B + A : C = C + B 例2:声明工作簿打印事件 Private Sub Workbook_BeforePrint(Cancel As Boolean) 如果工作表名不等于“总表”就禁止打印 If ActiveSheet.Name 总表 Then MsgBox 禁止打印: Cancel = True’ 参数Cancel用于控制是否可以打印 End Sub 例3: 声明工作簿开启事件 Private Sub Workbook_Open() 如果现在的小时数大于等于8,而且小于等于18则退出过程 If Hour(Now) = 8 And Hour(Now) = 18 Then Exit Sub 退出Excel程序 Application.Quit End Sub 例4: Sub 工作簿另存() 如果A1是数字,而且非空,那么工作簿保存为A1的值 IsNumeric判断单元格值是否为数值 SaveAs另存为 FileFormat文件类型 xlOpenXMLWorkbookMacroEnabled启动宏的工作簿 If VBA.IsNumeric([a1]) And Len([a1]) 0 Then ThisWorkbook.SaveAs C:\ [a1], FileFormat:=xlOpenXMLWorkbookMacroEnabled End Sub 三、If...Then...Else 语句 语法有两种格式,一种是语句在同一行中,其不需要End If作为结束语;另一种是多行,则End If必须要成结出现。 If condition Then [statements][Else elsestatements] 或者,可以使用块形式的语法: If condition Then [statements] [ElseIf condition-n Then [elseifstatements] ... [Else [elsestatements]] End If 部分 描述 condition 必要参数。一个或多个具有下面两种类型的表达式: ? HYPERLINK JavaScript:hhobj_6.Click() 数值表达式或 HYPERLINK JavaScript:hhobj_7.Click() 字符串表达式,其运算结果为 True 或 False。如果 condition 为 H

文档评论(0)

1亿VIP精品文档

相关文档