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

ExcelVBA运用Excel的【条件格式】(五)
FormatConditions.Add方法

【问题】

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

【效果】

如图

4779cf4d6936a91d03861b92fec2e5af.png

【知识点】

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的单元格:

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代码

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代码

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

====若有用,请转发,大家免费学习====

关注看更多文章

1e93f946ba5ed8877d3331e7b9296fcd.jpeg

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

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值