跳到主要内容

使用 VBA 定位特殊单元格

您可以使用 Excel VBA 快速选择包含特定类型数据的单元格,就像使用“定位”命令一样。大多数【定位】命令使用 SpecialCells 方法,如果您想学习其他选择单元格区域的方法,请阅读:使用 VBA 选择单元格区域常用代码

Range.SpecialCells 方法

语法

SpecialCells (Type, Value)

参数

名称 必需/可选 数据类型 说明
Type 必需 XlCellType 要包含的单元格。
Value 可选 Variant 如果 Type xlCellTypeConstants xlCellTypeFormulas,则此参数用于确定结果中要包含的单元格类型。将这些值相加可返回多种类型的单元格。默认情况下,将选择所有常量或公式,无论类型如何。

其中 XlCellType 常量取值如下表所示:

XlCellType 常量 说明
xlCellTypeAllFormatConditions -4172 任意格式的单元格。
xlCellTypeAllValidation -4174 含有验证条件的单元格。
xlCellTypeBlanks 4 空单元格。
xlCellTypeComments -4144 含有注释的单元格。
xlCellTypeConstants 2 含有常量的单元格。
xlCellTypeFormulas -4123 含有公式的单元格。
xlCellTypeLastCell 11 所用区域中的最后一个单元格。
xlCellTypeSameFormatConditions -4173 格式相同的单元格。
xlCellTypeSameValidation -4175 验证条件相同的单元格。
xlCellTypeVisible 12 所有可见单元格。

批注

以下示例在整个工作表中选择包含批注的单元格:

Cells.SpecialCells(xlCellTypeComments).Select

以下示例选择单元格区域 A1:E20 中包含批注的单元格:

Range("A1:E20").SpecialCells(xlCellTypeComments).Select

常量

如果 SpecialCells 的 Type 为 xlCellTypeConstants,可以使用 XlSpecialCellsValue 枚举指定要包含在结果中的具有特定类型的值的单元格。

xlCellTypeConstants 参数值可以相加以返回多种类型。

XlSpecialCellsValue 常量
XlSpecialCellsValue 常量 说明
xlErrors 16 有错误的单元格。
xlLogical 4 具有逻辑值的单元格。
xlNumbers 1 具有数值的单元格。
xlTextValues 2 具有文本的单元格。

在整个工作表中选择包含常量的单元格:

Cells.SpecialCells(xlCellTypeConstants, 23).Select

=

Cells.SpecialCells(xlCellTypeConstants).Select

在整个工作表中选择包含文本的单元格:

Cells.SpecialCells(xlCellTypeConstants, 2).Select

在活动工作表的使用单元格区域中选择包含数值的单元格:

ActiveSheet.UsedRange.SpecialCells(xlCellTypeConstants, 1).Select

在整个工作表中选择包含逻辑值的单元格:

Cells.SpecialCells(xlCellTypeConstants, 4).Select

在整个工作表中选择包含错误的单元格:

Cells.SpecialCells(xlCellTypeConstants, 16).Select

公式

如果 SpecialCells 的 Type 为 xlCellTypeFormulas,可以使用 XlSpecialCellsValue 枚举指定要包含在结果中的具有特定类型的值的单元格。

xlCellTypeFormulas 参数值可以相加以返回多种类型:

XlSpecialCellsValue 常量
XlSpecialCellsValue 常量 说明
xlErrors 16 有错误的单元格。
xlLogical 4 具有逻辑值的单元格。
xlNumbers 1 具有数值的单元格。
xlTextValues 2 具有文本的单元格。

在整个工作表中选择包含公式的单元格:

Cells.SpecialCells(xlCellTypeFormulas, 23).Select

=

Cells.SpecialCells(xlCellTypeFormulas).Select

在整个工作表中选择公式值为文本的单元格:

Cells.SpecialCells(xlCellTypeFormulas, 2).Select

在活动工作表的使用单元格区域中选择公式值为数值的单元格:

ActiveSheet.UsedRange.SpecialCells(xlCellTypeFormulas, 1).Select

在整个工作表中选择公式值为逻辑值的单元格:

Cells.SpecialCells(xlCellTypeFormulas, 4).Select

在整个工作表中选择公式值为错误值的单元格:

Cells.SpecialCells(xlCellTypeFormulas, 16).Select

空值

在整个工作表中选择空白单元格:

Cells.SpecialCells(xlCellTypeBlanks).Select

选择单元格区域 B2:J20 中的空白单元格:

Range("B2:J20").SpecialCells(xlCellTypeBlanks).Select

=

ActiveSheet.UsedRange.SpecialCells(xlCellTypeBlanks).Select

当前区域

选择单元格 A1 周围的矩形单元格区域:

Range("A1").CurrentRegion.Select

当前数组

如果活动单元格包含在数组中,则选择整个数组:

ActiveCell.CurrentArray.Select

对象

选择所有图形对象,包括活动工作表上的图表和按钮:

ActiveSheet.DrawingObjects.Select

行内容差异单元格

选择第一行中与 A1 不同的值的单元格:

Rows(1).RowDifferences(Range("A1")).Select

列内容差异单元格

选择 A 列中与 A1 不同的值的单元格:

Columns("A").ColumnDifferences(Range("A1")).Select

引用单元格

选择单元格 A1 的所有引用单元格:

Range("A1").Precedents.Select

选择单元格 A1 的直接引用单元格:

Range("A1").DirectPrecedents.Select

从属单元格

选择单元格 A1 的从属单元格:

Range("A1").Dependents.Select

选择单元格 A1 的直接从属单元格:

Range("A1").DirectDependents.Select

最后一个单元格

选择使用单元格区域内的最后一个单元格:

Cells.SpecialCells(xlCellTypeLastCell).Select

可见单元格

选择使用单元格区域内的可见单元格(试着隐藏一些行和列查看效果):

ActiveSheet.UsedRange.SpecialCells(xlCellTypeVisible).Select

条件格式

选择所有应用了条件格式的单元格:

Cells.SpecialCells(xlCellTypeAllFormatConditions).Select

选择与单元格 A1 具有相同条件格式的单元格。

Range("A1").SpecialCells(xlCellTypeSameFormatConditions).Select

数据验证

选择应用了数据验证的所有单元格:

Cells.SpecialCells(xlCellTypeAllValidation).Select

选择与单元格 A1 具有相同数据验证的单元格:

Range("A1").SpecialCells(xlCellTypeSameValidation).Select

评论

您的电子邮件地址不会显示出来。*号为必填项。