VBA学习基础之1.4条件语句

2023-10-26

VBA学习基础之条件语句


1.4.1 If … Then …

一个if语句由一个布尔表达式和一个或多个语句组成。如果条件被评估为True,则执行If条件块下的语句。如果条件被评估为False,则执行If循环块后面的语句。

If(boolean_expression) Then
   Statement 1
   .....
   .....
   Statement n
End If
Private Sub if_demo_Click()
   Dim x As Integer
   Dim y As Integer

   x = 234
   y = 32

   If x > y Then
      MsgBox ("X 的值大于 Y 的值")
   End If
End Sub

1.4.2 If … Else …
一个if语句由一个布尔表达式和一个或多个语句组成。如果条件评估为True,则执行if条件下的语句。如果条件评估为False,则执行else部分块下的语句。

If(boolean_expression) Then
   Statement 1
   .....
   .....
   Statement n
Else
   Statement 1
   .....
   ....
   Statement n
End If
Private Sub if_demo_Click()
   Dim x As Integer
   Dim y As Integer

   x = 10
   y = 20

   If x > y Then
      MsgBox ("X 的值大于 Y 的值")
   Else
      MsgBox ("Y 的值大于 X 的值")
   End If
End Sub

1.4.3 If … Elseif … Else …
一个If语句,后面可以跟一个或多个由布尔表达式组成的elseif语句,然后是一个默认的else语句,当所有条件变为false时执行else语句块。

If(boolean_expression) Then
   Statement 1
   .....
   .....
   Statement n
ElseIf (boolean_expression) Then
   Statement 1
   .....
   ....
   Statement n
ElseIf (boolean_expression) Then
   Statement 1
   .....
   ....
   Statement n
Else
   Statement 1
   .....
   ....
   Statement n
End If
Private Sub if_demo_Click()
   Dim x As Integer
   Dim y As Integer

   x = 10
   y = 10

   If x > y Then
      MsgBox ("X 大于 Y 的值")
   ElseIf y > x Then
      MsgBox ("Y 大于 X 的值")
   Else
      MsgBox ("X 和 Y 的值相等")
   End If
End Sub

1.4.4 If 嵌套

Private Sub nested_if_demo_Click()
   Dim a As Integer
   a = 12

   If a > 0 Then
      MsgBox ("The Number is a POSITIVE Number")

      If a = 1 Then
         MsgBox ("The Number is Neither Prime NOR Composite")
      ElseIf a = 2 Then
         MsgBox ("The Number is the Only Even Prime Number")
      ElseIf a = 3 Then
         MsgBox ("The Number is the Least Odd Prime Number")
      Else
         MsgBox ("The Number is NOT 0,1,2 or 3")
      End If
   ElseIf a < 0 Then
      MsgBox ("The Number is a NEGATIVE Number")
   Else
      MsgBox ("The Number is ZERO")
   End If
End Sub

1.4.5 Switch
当用户想要根据Expression的值执行一组语句时,使用Switch Case语句。 每个值被称为一个”情况”,并根据每种情况变量接通测试。如果测试表达式与用户指定的任何Case不匹配,则执行Case Else语句。

Case Else是Select Case中的一个可选语句,但是,总是使用一个Case Else语句是一个很好的编程习惯。

Select Case expression
   Case expressionlist1
      statement1
      statement2
      ....
      ....
      statement1n
   Case expressionlist2
      statement1
      statement2
      ....
      ....
   Case expressionlistn
      statement1
      statement2
      ....
      ....   
   Case Else
      elsestatement1
      elsestatement2
      ....
      ....
End Select
Private Sub switch_demo_Click()
   Dim MyVar As Integer
   MyVar = 1

   Select Case MyVar
      Case 1
         MsgBox "The Number is the Least Composite Number"
      Case 2
         MsgBox "The Number is the only Even Prime Number"
      Case 3
         MsgBox "The Number is the Least Odd Prime Number"
      Case Else
         MsgBox "Unknown Number"
   End Select
End Sub
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

VBA学习基础之1.4条件语句 的相关文章

  • 使用VBA从Zip中删除一些特定文件[重复]

    这个问题在这里已经有答案了 在完整的宏观过程中 我正在创建一个Zip的文件Folder 该文件夹有多个子文件夹和文件 使用此代码 Dim oApp As Object NewZip s path acc name zip Set oApp
  • 如何在 VBA 中的 Outlook-2007 中获取“已发送邮件”文件夹中的邮件 ID 或标头

    这是这个问题的一个子问题main https stackoverflow com questions 14418643 in ms outlook report all sent messages that havent received
  • 在 Excel VBA 中使用 getElementsByClassName

    下面是我正在使用的代码 但我收到此错误 对象不支持此属性或方法 使用时getElementsByClassName 我正在使用的新 2 变量没有被填充 请帮助我 如果我做错了 请告诉我 Sub PopulateTasks Variable
  • 更新 SQL MS Access 2010

    这已经让我绞尽脑汁了 4 个小时了 我有一个名为 BreakSked 的表 我使用此按钮来使用此 sql 更新表的休息结束时间 strSQL1 UPDATE BreakSked SET BreakSked EndTime Me Text41
  • 检索形状的名称

    在 Excel 中 左上角有 名称框 但我找不到在 Word 中检索形状名称的方法 我怎么做 MS Word 中有两种形状 InlineShapes and Shapes 使用一些 VBA 代码检查形状对象的名称非常容易 选择形状 按 Al
  • VBA:使用求解器时出现运行时错误 1004

    我是 VBA 新手 在宏中使用求解器时遇到一些问题 我将一个宏分配给 Excel 中的命令按钮 它们完美地计算了所有内容 但最后也出现了一个丑陋的错误 运行时错误 1004 对象 application 的方法计算失败 Sub serieu
  • 如何将新行插入范围并复制公式

    我有一个命名范围 如下所示 覆盖 A2 D3 ITEM PRICE QTY SUBTOTAL 1 10 3 30 1 5 2 10 TOTAL 40 我要使用 VBA 将新行插入到复制公式而不是值的范围中 任何提示 链接都非常感谢 这应该可
  • 如何在 Excel 的 VBA 中求负数的立方根?

    我正在尝试在 Excel 的 VBA 中计算负数的立方根 在 Excel 工作表中取负数的立方根效果很好 2 1 3 1 25992 然而 相同的概念被编码到 VBA 中 2 1 3 gives a VALUE 将值返回到工作表时出错 我怀
  • VBA COM 库中的这些 _B_var_Xxxxx 和 _B_str_Xxxxx 成员到底是什么?

    想象一下以下函数调用 foo UCase bar 我正在解析这段代码 并确定UCase是一个函数调用 现在我想将该函数调用解析为定义它的 COM 库中函数的声明 这个想法是实现一个代码检查来确定何时Variant当使用内置函数时String
  • 使用 Excel VBA 在 Outlook 电子邮件中使用 HTML 设置背景图像

    我正在尝试使用 Excel VBA 创建一封有关澳大利亚儿童癌症研究所的电子邮件 并带有背景图像 CCIALittleGirl jpg 然后 我希望在其上方有一个文本或文本框 最好是带有白色粗体文本 我可以在运行时填充这些文本 我可以在电子
  • 无法在函数内将数据写入 Excel 2007/2010 中的 VBA 单元格

    我想通过 VBA 设置单元格的值 我用谷歌搜索了一下 看到了一些解决方案 Sheets SheetName Range A1 value someValue Sheets SheetName Cells 1 1 value someValu
  • 查询不可更新

    我正在尝试使用 BE SQL Server 2012 Express 中的记录更新本地 Access 2007 表 我的步骤在这里 SQL Server中存在带有4个参数的存储过程来获取所需的记录 Access VBA中有调用SP并进行临时
  • 如何在 C# 中将 excel ListObject 添加到给定工作表?

    我目前正在 C 中开发一个 Excel 插件 其中包含多种方法 表值函数 可供 Excel 用户和程序员 VBA 使用 如何编写一个方法 将新的 ListObject Excel 表 添加到给定的 Excel 工作表 并将给定的 DataT
  • 数据透视和运行时错误 1004:应用程序定义或对象定义的错误

    我对宏和 VBA 编码很陌生 我正在尝试创建一个非常简单的宏 它从包含 33 列的表中获取数据并将其转换为数据透视表 只有最后 3 列 31 32 33 包含数字 我需要将其显示在枢轴上 因为我想比较当前月份 上个月以及逐月的变动 到目前为
  • 带有 For 循环的多维数组 VBA

    尝试检查第一列中的值 即多维数组中的列 如果它匹配 则对另一列中与该行匹配的值进行排序 我认为我做错了 但这是我第一次搞乱多维数组 我是否需要在每个 for 循环中使用 UBound 和 LBound 来告诉它要查看哪一列 除了当前问题的答
  • 将图表导出为图像 - 只需单击按钮

    我正在尝试创建一个按钮 将 图表 工作表中的图表导出为 jpeg 文件 这是我的代码 但它不断显示此错误 运行时错误 424 需要对象 具体来说 Set myChart Graphs ChartObjects 3 Name Chart4 这
  • VBA Office2010 Shapes.PasteSpecial 失败

    我在将 VBA 代码从 Office2003 迁移到 Office2010 时遇到问题 我想将单元格 Excel 的文本复制到Powerpoint Office2003生成了一个新的文本框 文本样式与Excel中相同 现在我的代码在 Off
  • 在 Word 2010 中复制形状而不使用 .Select?

    是否可以在 Word 2010 中复制形状而无需借助 Select 根据开发中心 http msdn microsoft com en us library office ff835500 aspx the Anchor属性返回形状的锚定范
  • Excel VBA 选择.替换,如果替换,则将文本放在替换行的 a 列中

    我有一些宏 例如 Columns F M Select Selection Replace What Replacement LookAt xlPart SearchOrder xlByRows MatchCase True SearchF
  • 按日期计算 Outlook 中的电子邮件

    我有以下代码来计算 Outlook 文件夹中的电子邮件数量 Sub HowManyEmails Dim objOutlook As Object objnSpace As Object objFolder As Object Dim Ema

随机推荐

  • 【玩转PointPillars】Ubuntu18.04上部署nutonomy/second.pytorch

    系统环境 Ubuntu18 04 cuda10 2 GeForce GTX 1650 今天部署的项目虽然名称上叫做second pytorch 实际上是PointPillars的作者fork自SECOND项目 并作了改动之后形成的Point
  • 词法分析器构造工具Flex基础学习

    Flex是一个生成词法分析器的工具 它可以利用正则表达式来生成匹配相应字符串的C语言代码 其语法格式基本同Lex相同 单词的描述称为模式 Lexical Pattern 模式一般用正规表达式进行精确描述 FLEX通过读取一个有规定格式的文本
  • SVN 服务器发送了意外的返回值(405 Method Not Allowed),在响应 “MKCOL” 的请求

    先转载一段网上说的解决方法 svn 405 Method Not Allowed 在响应 MKCOL 的请求 I managed to solve the problem Delete the parent s directory of t
  • jupyter lab的目录调整及默认浏览器设置为chrome

    Jupyter lab 的目录调整及默认浏览器设置为chrome 1 Jupyter 默认目录调整 首先要找到jupyter生成的配置文件 jupyter notebook config py 如果没有 在 anaconda prompt
  • 在Anaconda中快速安装OpenCV for Python

    一 下载和安装Anaconda Anaconda下载地址 Anaconda Individual EditionAnaconda s open source Individual Edition is the easiest way to
  • 【吐血整理】java程序员推荐轻薄笔记本

    正文 在写这个文章之前 我花了点时间 自己臆想了一个电商系统 基本上算是麻雀虽小五脏俱全 我今天就用它开刀 一步步剖析 我会讲一下我们可能会接触的技术栈可能不全 但是够用 最后给个学习路线 Tip 请多欣赏一会 每个点看一下 看看什么地方是
  • kali Linux自带firefox ESR设置代理

    1 打开kali的火狐浏览器 找到右上角的 三个杠 在点击 preferences 2 general gt network proxy gt setting 3 打开靶场和burp suite工具 注意火狐浏览器的代理是启动状态 靶场地址
  • 双写绕过的原理

    可以看到代码对key进行了过滤 那怎么办呢 可以构造kekeyy 当key被过滤掉时 剩下的字符自动拼接在一起 就形成了key 所以说 这样就可以拿下flag了
  • 梯度下降(学习笔记)

    应用 梯度下降法 Gradient Descent 又称最速下降法 是迭代法的一种 可用于求解机器学习算法的模型参数 即无约束优化问题 具体来讲可用来求解损失函数的最小值 也可求解最小二乘问题 分类 批量梯度下降 BGD 使用全部样本构建了
  • 职场大佬常用工具:Baklib,一款个人知识笔记管理神器

    又到了大家喜爱的好用工具推荐环节 今天我要给大家推荐一款个人知识笔记管理神器 不出你们所料 它就是Baklib 言归正传那Baklib究竟能干啥呢 引用官网的一句话来说 Baklib工具可以将大家日常工作学习中 存储到电脑 云盘上的文档 知
  • 06makefile学习之三个自动变量($@,$^,$<),模式规则和静态模式规则

    06makefile学习之三个自动变量 lt 和模式规则 以下为相关makefile的学习文章 01makefile学习之GCC编译的四个阶段 带编译阶段 汇编阶段 S c的区别 02makefile学习之makefile的基本原则 03m
  • Oracle存储过程处理大批量数据性能测试

    通过此次的大批量数据性能测试 还会间接的给大家分享一个知识点 Oracle存储过程如何处理List集合的问题 废话不多说了 老规矩直接上代码 首先要做的 想必大家应该猜到了 建表 create table tab 1 id varchar
  • linux内核中打印栈回溯信息 - dump_stack()函数分析

    简介 当内核出现比较严重的错误时 例如发生Oops错误或者内核认为系统运行状态异常 内核就会打印出当前进程的栈回溯信息 其中包含当前执行代码的位置以及相邻的指令 产生错误的原因 关键寄存器的值以及函数调用关系等信息 这些信息对于调试内核错误
  • 使用matlab修改单张或多张图像大小

    使用matlab修改单张或多张图像大小 版权声明 本文为CSDN博主 berlinpand 的原创文章 遵循 CC 4 0 BY SA 版权协议 转载请附上原文出处链接及本声明 原文链接 https blog csdn net berlin
  • 黑马程序员 《ios零基础教程》--全局和局部变量、结构体、枚举 2014-4-2总结

    a href http edu csdn net target self ASP Net Unity开发 a a href http edu csdn net target self Net培训 a 期待与您交流 前几天出差有事儿没学习 今
  • ChatGPT-4.5:AI技术的最新进展

    文章目录 创作者 全栈弄潮儿 个人主页 全栈弄潮儿的个人主页 个人社区 欢迎你的加入 全栈弄潮儿的个人社区 专栏地址 AI大模型 OpenAI最新发布的GPT 4 在聊天机器人的功能上取得了显著的改进 虽然GPT 4仍处于早期阶段 但有传言
  • 在阿里云Ubuntu中使用coturn创建和配置您自己的STUN/TURN服务

    1 前言 此前rtsp转webRTC的本地服务运行的不错 但是使用的某个免费stun服务突然被关停了 造成一些rtspToWebRTC的服务受到影响 因此 目前打算在我闲置的阿里云服务器上搭建stun turn服务 我的域名xiaoyaoy
  • openssl的RSA加密(base64编码)

    openssl的RSA加密 base64编码 同AES加密 开头先给出openssl实现base64编码代码 base64编码 解码 Function base64Encode Description base64 编码 Input 1 i
  • Python:pandas groupby实现类似excel中averageifs函数的功能

    从exccel切换到python进行数据处理 处理的主要还是excel的思路 希望实现类似excel中某个函数的功能 日常主要参考蓝鲸的 从excel到python 目前在做一些统计指标 excel中用了countifs sumifs和av
  • VBA学习基础之1.4条件语句

    VBA学习基础之条件语句 1 4 1 If Then 一个if语句由一个布尔表达式和一个或多个语句组成 如果条件被评估为True 则执行If条件块下的语句 如果条件被评估为False 则执行If循环块后面的语句 If boolean exp