前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ExcelVBA运用Excel的【条件格式】(五)

ExcelVBA运用Excel的【条件格式】(五)

作者头像
哆哆Excel
发布2024-07-25 16:14:10
400
发布2024-07-25 16:14:10
举报
文章被收录于专栏:哆哆Excel

ExcelVBA运用Excel的【条件格式】(五)

FormatConditions.Add方法

【问题】

在数据中,快速定位到60-80的数据

【效果】

如图

【知识点】

FormatConditions.Add`方法在VBA中用于向工作表上的某个范围添加新的条件格式规则。这个方法是`FormatConditions`集合的一个成员,而`FormatConditions`集合属于`Range`对象。这意味着你必须首先选定一个范围,然后才能调用`Add`方法来添加条件格式。

### 基本语法

RangeObject.FormatConditions.Add(Type:=XlFormatConditionType, Operator:=XlFormatConditionOperator, Formula1:=Formula1, Formula2:=Formula2)

### 参数:

- `Type` 是必需的参数,指定条件格式的类型,可以是以下常量之一:

- `xlCellValue`:基于单元格的值。

- `xlExpression`:基于公式表达式。

- `xlColorScale`:基于颜色比例尺。

- `xlDataBar`:基于数据条。

- `xlIconSet`:基于图标集。

- `xlTop10`:基于前10个或后10个(或百分比)。

- `xlUniqueValues`:基于唯一值或重复值。

- `xlDuplicateValues`:基于重复值。

- `xlContainsBlanks`:基于空白单元格。

- `xlNotContainsBlanks`:基于非空白单元格。

- `xlContainsErrors`:基于错误单元格。

- `xlNotContainsErrors`:基于无错误单元格。

- `xlCellValueGreaterThanOrEqual`:大于或等于某个值。

- `xlCellValueGreaterThan`:大于某个值。

- `xlCellValueLessThanOrEqual`:小于或等于某个值。

- `xlCellValueLessThan`:小于某个值。

- `xlCellValueBetween`:介于两个值之间。

- `xlCellValueNotBetween`:不介于两个值之间。

- `xlCellValueEqualTo`:等于某个值。

- `xlCellValueNotEqualTo`:不等于某个值。

- `xlCellValueBeginningWith`:以某个文本开头。

- `xlCellValueNotBeginningWith`:不以某个文本开头。

- `xlCellValueEndingWith`:以某个文本结尾。

- `xlCellValueNotEndingWith`:不以某个文本结尾。

- `xlCellValueContaining`:包含某个文本。

- `xlCellValueNotContaining`:不包含某个文本。

- `xlCellValueDays`:基于天数(适用于日期)。

- `xlCellValueNotDays`:不基于天数(适用于日期)。

- `xlCellValueMonths`:基于月份数(适用于日期)。

- `xlCellValueNotMonths`:不基于月份数(适用于日期)。

- `xlCellValueYears`:基于年数(适用于日期)。

- `xlCellValueNotYears`:不基于年数(适用于日期)。

- `Formula1` 和 `Formula2` 是可选参数,用于提供给定类型的条件格式规则的公式。它们可以是单元格引用、数值或文本字符串。

- `Operator` 也是可选参数,用于指定比较运算符,仅当`Type`为`xlCellValue`且需要比较时才需要此参数。它可以是以下常量之一:

- `xlAnd`:用于组合两个公式。

- `xlBetween`:用于`xlCellValueBetween`类型。

- `xlEqual`:等于。

- `xlGreater`:大于。

- `xlGreaterEqual`:大于等于。

- `xlLess`:小于。

- `xlLessEqual`:小于等于。

- `xlNotEqual`:不等于。

- `xlOr`:用于组合两个公式。

### 示例

以下是一个使用`FormatConditions.Add`方法的例子,它将应用一个条件格式规则,以高亮显示所有大于50的单元格:

代码语言:javascript
复制
Sub AddCondition()
    Dim ws As Worksheet
    Dim rng As Range
    Set ws = ThisWorkbook.Sheets("Sheet1")
    Set rng = ws.Range("A1:C10")
    With rng.FormatConditions.Add(Type:=xlCellValue, Operator:=xlGreaterThan, Formula1:=50)
        .SetFirstPriority
        .Interior.ColorIndex = 6 ' 设置背景颜色为红色
    End With
End Sub

在这个例子中,`Type`被设为`xlCellValue`,`Operator`被设为`xlGreaterThan`,`Formula1`被设为数字50。这样,所有大于50的单元格都会被标记出来。

【我的代码】

1.下面是利用条件格式的VBA代码

代码语言:javascript
复制
Sub 条件格式定位60_80()
    '
    ' 条件格式定位 宏
    Dim ws As Worksheet
    Dim rng As Range
    Set ws = ActiveSheet
    Set rng = ws.Range("A1:F20")
    ' 清除之前的条件格式
    ws.Cells.FormatConditions.Delete
    With rng.FormatConditions.Add(Type:=xlCellValue, Operator:=xlBetween, _
            Formula1:="=60", Formula2:="=80")
        .Interior.Color = RGB(255, 255, 0)
        ' 设置背景色为黄色
    End With
End Sub

2.下面利用常规的数据检测的VBA代码

代码语言:javascript
复制
Sub GoToValuesBetweenXAndY()
    Dim ws As Worksheet
    Dim cell As Range
    Dim x As Double, y As Double
    x = 10                                                     ' 设定x值
    y = 20                                                     ' 设定y值
    Set ws = ActiveSheet                                       ' 或者指定工作表
    For Each cell In ws.UsedRange.Cells
        If Not IsError(cell.Value) And IsNumeric(cell.Value) And cell.Value >= x And cell.Value <= y Then
            '            Application.Goto cell, True
            '            Exit Sub ' 找到第一个符合条件的就退出
            cell.Interior.Color = RGB(255, 255, 0)
        End If
    Next cell
    '    MsgBox "没有找到介于 " & x & " 和 " & y & " 之间的数值数据"
End Sub
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-07-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 哆哆Excel 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档