使用具有多个条件的 If 语句

2024-01-14

我编写了以下代码,基本上应该相应地为一些框着色。每当我运行此代码时,它都会运行第一种情况,即即使需要选择其他情况也是如此。这是代码。

Sub Macro_quaterly()
If Sheet2.Range("B6").Value = 1 Or 2 Or 3 Then
    Range("D7").Select
    With Selection.Interior
        '.Pattern = xlSolid
        .PatternColorIndex = xlAutomatic
        .Color = 255
        .TintAndShade = 0
        .PatternTintAndShade = 0
        Sheet2.Cells(6, 11) = "rrrrrrr"
    End With
ElseIf Sheet2.Range("B6").Value = 4 Or 5 Or 6 Or 7 Then
    Range("D7:E7").Select
    With Selection.Interior
        '.Pattern = xlSolid
        .PatternColorIndex = xlAutomatic
        .Color = 255
        .TintAndShade = 0
        .PatternTintAndShade = 0
        Sheet2.Cells(6, 12) = "rddddddr"
    End With
ElseIf Sheet2.Cells(6, 2) = 8 Or 9 Or 10 Or 11 Then
 Range("D7:F7").Select
    With Selection.Interior
        .Pattern = xlSolid
        .PatternColorIndex = xlAutomatic
        .Color = 255
        .TintAndShade = 0
        .PatternTintAndShade = 0
    End With
ElseIf Sheet2.Cells(6, 2) = 12 Or 13 Or 14 Or 15 Then
 Range("D7:G7").Select
    With Selection.Interior
        .Pattern = xlSolid
        .PatternColorIndex = xlAutomatic
        .Color = 255
        .TintAndShade = 0
        .PatternTintAndShade = 0
    End With
ElseIf Sheet2.Cells(6, 2) = 16 Or 17 Or 18 Or 19 Then
 Range("D7:H7").Select
    With Selection.Interior
        .Pattern = xlSolid
        .PatternColorIndex = xlAutomatic
        .Color = 255
        .TintAndShade = 0
        .PatternTintAndShade = 0
    End With
ElseIf Sheet2.Cells(6, 2) = 20 Or 21 Or 22 Or 23 Then
 Range("D7:I7").Select
    With Selection.Interior
        .Pattern = xlSolid
        .PatternColorIndex = xlAutomatic
        .Color = 255
        .TintAndShade = 0
        .PatternTintAndShade = 0
    End With
ElseIf Sheet2.Cells(6, 2) = 24 Or 25 Or 26 Or 27 Then
 Range("D7:J7").Select
    With Selection.Interior
        .Pattern = xlSolid
        .PatternColorIndex = xlAutomatic
        .Color = 255
        .TintAndShade = 0
        .PatternTintAndShade = 0
    End With
ElseIf Sheet2.Cells(6, 2) = 28 Or 29 Or 30 Or 31 Then
 Range("D7:K7").Select
    With Selection.Interior
        .Pattern = xlSolid
        .PatternColorIndex = xlAutomatic
        .Color = 255
        .TintAndShade = 0
        .PatternTintAndShade = 0
    End With
ElseIf Sheet2.Cells(6, 2) = 32 Or 33 Or 34 Or 35 Then
 Range("D7:L7").Select
    With Selection.Interior
        .Pattern = xlSolid
        .PatternColorIndex = xlAutomatic
        .Color = 255
        .TintAndShade = 0
        .PatternTintAndShade = 0
    End With
ElseIf Sheet2.Cells(6, 2) = 36 Or 37 Or 38 Or 39 Then
 Range("D7:M7").Select
    With Selection.Interior
        .Pattern = xlSolid
        .PatternColorIndex = xlAutomatic
        .Color = 255
        .TintAndShade = 0
        .PatternTintAndShade = 0
    End With
ElseIf Sheet2.Cells(6, 2) = 40 Or 41 Or 42 Or 43 Then
 Range("D7:N7").Select
    With Selection.Interior
        .Pattern = xlSolid
        .PatternColorIndex = xlAutomatic
        .Color = 255
        .TintAndShade = 0
        .PatternTintAndShade = 0
    End With
ElseIf Sheet2.Cells(6, 2) = 44 Or 45 Or 46 Or 47 Then
 Range("D7:O7").Select
    With Selection.Interior
        .Pattern = xlSolid
        .PatternColorIndex = xlAutomatic
        .Color = 255
        .TintAndShade = 0
        .PatternTintAndShade = 0
    End With
ElseIf Sheet2.Cells(6, 2) = 48 Or 49 Or 50 Or 51 Then
 Range("D7:P7").Select
    With Selection.Interior
        .Pattern = xlSolid
        .PatternColorIndex = xlAutomatic
        .Color = 255
        .TintAndShade = 0
        .PatternTintAndShade = 0
    End With
ElseIf Sheet2.Cells(6, 2) = 52 Or 53 Or 54 Or 55 Then
 Range("D7:Q7").Select
    With Selection.Interior
        .Pattern = xlSolid
        .PatternColorIndex = xlAutomatic
        .Color = 255
        .TintAndShade = 0
        .PatternTintAndShade = 0
    End With
ElseIf Sheet2.Cells(6, 2) = 56 Or 57 Or 58 Or 59 Then
 Range("D7:R7").Select
    With Selection.Interior
        .Pattern = xlSolid
        .PatternColorIndex = xlAutomatic
        .Color = 255
        .TintAndShade = 0
        .PatternTintAndShade = 0
    End With
ElseIf Sheet2.Cells(6, 2) = 60 Then
 Range("D7:S7").Select
    With Selection.Interior
        .Pattern = xlSolid
        .PatternColorIndex = xlAutomatic
        .Color = 255
        .TintAndShade = 0
        .PatternTintAndShade = 0
    End With
End If

End Sub

我们将不胜感激您的帮助。


另一种方法是使用Select..Case声明。我认为对于这种事情来说它更具可读性:

Select Case Sheet2.Range("B6").Value 
Case 1, 2, 3
    Range("D7").Select
    With Selection.Interior
        '.Pattern = xlSolid
        .PatternColorIndex = xlAutomatic
        .Color = 255
        .TintAndShade = 0
        .PatternTintAndShade = 0
        Sheet2.Cells(6, 11) = "rrrrrrr"
    End With
Case 4, 5, 6, 7
    Range("D7:E7").Select
    With Selection.Interior
        '.Pattern = xlSolid
        .PatternColorIndex = xlAutomatic
        .Color = 255
        .TintAndShade = 0
        .PatternTintAndShade = 0
        Sheet2.Cells(6, 12) = "rddddddr"
    End With
Case .... 
    ....   
Case Else
    ....
End Select
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用具有多个条件的 If 语句 的相关文章

  • 插入行而不选择任何内容?

    我正在使用 VBA 希望在特定位置插入一行而不选择它 我遇到的问题是 选择该行后 当脚本运行完毕时 电子表格会向下滚动到该行 我希望能够在不将电子表格向下滚动到插入行的情况下执行此操作 Rows i i Select ActiveCell
  • 了解从 MsgBox 返回的响应代码

    我对编程很陌生 我刚刚开始学习 VBA 和 Excel 我在这个网站上遇到并做了这里的例子 但我对这段代码有疑问 我知道变量是使用 Dim 语句声明的 Message 这里是数据类型为整数的变量 我不太明白的是 这里的 6 和 7 是什么意
  • 循环浏览文件夹中的工作簿

    我正在尝试从文件夹中的所有工作簿复制某些单元格 下面的代码仅循环遍历第一个文件 VBA 新手 欢迎任何帮助 提前致谢 Sub Get Data Dim Directory As String Dim Filename As String D
  • 使用 VBA 将 Excel 工作表导入 Access

    我正在尝试使用一些简单的 VBA 代码将 Excel 电子表格导入到 Access 中 我遇到的问题是 Excel 文件中有 2 个工作表 我需要导入第二个工作表 是否可以在VBA代码中指定所需的工作表 Private Sub Comman
  • 将整个工作表复制到 Excel 2010 中的新工作表

    我发现了类似的问题 涉及复制一个工作簿中的整个工作表并将其粘贴到另一个工作簿 但我感兴趣的是简单地复制整个工作表并将其粘贴到同一工作簿中的新工作表 我正在将 2003 xls 文件转换为 2010 xlsm 用于在工作表之间复制和粘贴的旧方
  • 根据用户名获取广告详细信息

    我有一个代码可以从 AD 检索用户的详细信息 例如电子邮件地址 电话号码等 我当前使用的代码是 Set objSysInfo CreateObject ADSystemInfo strUser objSysInfo UserName msg
  • 如果不是,则必须删除单元格的第一个字符 #3Created 循环永远不会结束

    所以基本上 我需要删除主键字段中第二位数字不为 3 的所有记录 例如可以如下所示 39001 或者没有 3 我想要的是所有以非 3 开头的单元格 它们的行都被删除我想出了以下代码 它删除了所有单元格 但宏永远不会停止运行 Sub keep3
  • 电子邮件正文为空,没有 .Display

    我读过这个 VBA Outlook 2010 收到邮件 正文为空 https stackoverflow com questions 42348518 vba outlook 2010 received mail body is empty
  • 我需要使用 VBA 将数据从 Excel 插入 SQL Server

    我需要插入test vba xlsx将数据写入 SQL Server 到特定数据库 Sub insertion Dim conn As ADODB Connection Dim rs As ADODB Recordset Dim sConn
  • VBA - 使用字符串串联调用子例程

    是否可以使用字符串串联来调用 VBA 中的子例程 例如 Sub Call This 2019 do something end sub Sub From this Call Call This str 2019 Sub 我使用这种方法没有任
  • 使用Excel宏执行命令并关闭cmd窗口

    这是我现在正在尝试的 Sub del BJSFM files Call Shell cmd exe S K cd d C UTAS SA del f s q BJSFM gt nul vbNormalFocus End Sub 问题是命令窗
  • 为什么 MS Excel 在 Worksheet_Change Sub 过程中崩溃并关闭?

    当我在 Excel 工作表上运行 VBA 代码时 我遇到了 Excel 崩溃的问题 我正在尝试在工作表更改中添加以下公式 Private Sub Worksheet Change ByVal Target As Range Workshee
  • 随着数据的增加自动填充公式并动态排序[重复]

    这个问题在这里已经有答案了 我想对工作表中的数据进行排序 该工作表每天都会在第二个工作表中获取新行 问题是 如果我使用 SMALL 函数并自动填充单元格直到最后一行 A102482 或类似的内容 我的文件会变得非常巨大且滞后 gt 20mb
  • VBA按空格分割字符串

    我想要一个 Excel 函数 我可以调用该函数并将单元格传递到其中 输入 Firstname Lastname email protected cdn cgi l email protection Firstname midname Las
  • Excel 公式或 VBA:在具有 2 列条件的单独表中查找匹配的地址 - 无辅助列

    我需要公式结构方面的帮助 我有2张桌子 我想找到 a 列和 b 列相等的匹配项并获取表 2 中的地址 它们将是唯一的条目 例如 项目信息表 A B C 1 Name Company Project 2 Chris Evans Apple I
  • 通过 VBA MS_Access 将 MS Access 表导出为 dBase 5

    如何通过 VBA 将单个表导出为 dBase 5 文件 目前我正在使用这个VBA代码 DoCmd TransferDatabase acExport dBase IV DB Total acTable DB Total C Data Fal
  • 根据不同的列数据范围隐藏行

    我对使用 VBA 相当陌生 我正在尝试创建一个代码 该代码将查看具有不同数据范围的两个不同列 并隐藏最后一个数据点之外的行 引用两列 目前我有这个 Private Sub Worksheet PivotTableUpdate ByVal T
  • 如何通过VBA代码修复仅在Excel共享模式下发生的运行时错误400

    我真的不知道400错误是什么原因造成的 下面的代码在正常模式下运行得很好 但是一旦我在共享模式下启用 Excel 并尝试使用用户表单 它就会给我 VBA 400 我在这里尝试做的是在向用户显示用户表单后更改形状的文本并禁用其 OnActio
  • 用于更新 Word 文档中所有字段的宏

    多年来 我构建了一个 vba 宏 该宏应该更新 Word 文档中的所有字段 我在发布文档进行审查之前调用此宏 以确保所有页眉和页脚等均正确 目前 它看起来像这样 Sub UpdateAllFields UpdateAllFields Mac
  • Bash 字符串之间的比较 - 相等但不相等

    我只想在 Bash 中的两个字符串之间进行非常简单的比较 stat curl Is url head n 1 echo stat if stat HTTP 1 1 200 OK then echo symbol is OK echo sta

随机推荐

  • 实例初始值设定项单元测试失败并显示“存储未定义”

    生成示例应用程序后 ember new preloadtest cd preloadtest ember g instance initializer preload ember g model test data ember g rout
  • 未捕获的引用错误:d3 未定义

    我是 Web 开发新手 我正在尝试将基于 D3 的 JS 可视化上传到 Weebly 域 我已将所有必需的文件上传到我的 Weebly 站点 并在 JavaScript 中正确引用了它们 但在这一行中不断收到 Uncaught Refere
  • 素数测试,2 位数字

    我想打印所有两位数长的质数 这是我的代码 for int input 11 input lt 99 input 2 for int x 2 x lt int Math sqrt input 1 x if input x 0 System o
  • 检测 UISwipeGesture 后手指何时抬起[识别器]

    我已经设置了一个UISwipeGestureRecognizer UISwipeGestureRecognizer swipe UISwipeGestureRecognizer alloc initWithTarget delegate a
  • 如何撤消 git merge 挤压?

    我刚刚做了一个 git merge squash feature branch into my develop branch 问题是上面的命令更新了头部而没有创建新的提交 我的目的是创建一个单独的提交来应用于头部develop 简而言之 日
  • 对于这个 I/O 密集型操作,为什么 asyncio 库比线程慢?

    我正在编写一个 python 程序 用于枚举网站的域名 例如 a google com 首先 我使用了threading模块来执行此操作 import string import time import socket import thre
  • height/minHeight 和 display:flex 的行为

    我正在观察以下行为 这段代码 div div div div div div div div 结果是这样的 See 红色边框 看起来带有 id 地图的 d
  • 如何使用 VueJS 防止数字输入

    我需要创建一个验证来防止用户在文本框中输入数字 我找到了一些使用本机 JavaScript 的解决方案 但它在我这边不起作用 在我的文本框中我有这个触发器 v on keyup preventNumericInput event gt 在我
  • Node.js:EBADF,错误文件描述符

    如果我多次重新加载我的应用程序 从浏览器中使用重新加载按钮 例如50 reload 10 seconds它给了我这个错误 events js 45 throw arguments 1 Unhandled error event Error
  • 迁移工作项数据时出错[重复]

    这个问题在这里已经有答案了 迁移工作项数据时出现以下错误 由于以下原因 配置失败 com opshub exceptions DataVaIidationException OpsHub 012017 字段 映射名称 10 1 I 31XD
  • HTML 重复 ID

    我的控件是根据用户输入动态构建的 有nID 也是动态的文本框 然而 我没有预见到这个 HTML 会在同一 html 页面的其他地方重用 我现在面临的问题是重复的 ID 这导致我的 jQuery 函数无法正常工作 我确实明白 ID 应该是唯一
  • Math.Net 解值为 0 的线性方程组

    我试图在 Math Net 中求解矩阵 当矩阵的实际解之一为 0 时 但我得到 NaN 作为结果 这是一个示例矩阵 为简单起见已对其进行了简化 1 0 1 10000 0 1 1 1000 0 0 0 0 代码示例 public void
  • 重构 Form_for 创建多态关联中注释的方法

    我正在研究我的第一个多态关联关系 但在重构我的 form for 创建评论时遇到了麻烦 我尝试浏览多态协会 RailsCastshttp railscasts com episodes 154 polymorphic association
  • .htaccess,将404错误重写到其他域

    如何将所有 404 错误重定向到另一个域 我找到了 Error 404 http example com error html 但是我需要 if Error 404 http example com 1 我试过了 RewriteEngine
  • python 中的随机()

    在Python中的函数random 均匀地生成半开范围 0 0 1 0 内的随机浮点数 原则上它能生成 0 0 即零 和 1 0 即统一 吗 实际应用中是什么样的场景呢 0 0可以生成 1 0不能 因为它不在范围内 因此 相对于 生成概率0
  • 在 Swift 中将图像(或视频)发布到服务器

    您好 我正在使用 NSURLSession 快速将 json 数据发布到服务器 如下所示 var request NSMutableURLRequest URL NSURL string http mypath com var sessio
  • 2016 年最佳密码存储算法

    实际上我读了很多与算法相关的帖子 比如md5 sha1等等 但我仍然不确定哪一种是当今最安全且最好使用的 我是网络开发的初学者 我要求世界上所有最好的程序员来教我并向我展示 我希望你们能给我选择和使用它的例子 谢谢 顺便 2016 年如何安
  • Django、apache、mod_wsgi - 错误:脚本标头过早结束

    Apache 以调试模式登录 Tue Dec 21 11 36 33 2010 info client 1 53 149 114 mod wsgi pid 24831 process mysite application mysite co
  • 按键对 React Native 部分列表进行排序和分组

    我有一个部分列表 其中填充了来自 firebase 的数据 该列表显示按日期划分的事件信息 当前月份显示为THIS MONTH和其他日期使用其速记值JAN FEB etc 我得到的数据很好并且可以很好地显示它 但我不知道如何按日期对数据数组
  • 使用具有多个条件的 If 语句

    我编写了以下代码 基本上应该相应地为一些框着色 每当我运行此代码时 它都会运行第一种情况 即即使需要选择其他情况也是如此 这是代码 Sub Macro quaterly If Sheet2 Range B6 Value 1 Or 2 Or