Vba:如何查找列中的值(带有示例)


您可以在 VBA 中使用以下基本语法来查找 Excel 列中的值:

 Sub FindValue()

Dim rng As Range
Dim cell As Range
Dim findString As String

'specify range to look in
Set rng = ActiveSheet.Columns(" A:A ")

'specify string to look for
findString = " Rockets "

'find cell with string
Set cell = rng.Find(What:=findString, LookIn:=xlFormulas, _
                    LookAt:=xlWhole, MatchCase:=False)

If cell Is Nothing Then
    cell.Font.Color = vbBlack
Else
    cell.Font.Color = vbRed
    cell.Font.Bold = True
End If

End Sub

这个特定的宏将在当前活动工作表的整个 A 列中搜索字符串“Rockets”,如果找到,则将单元格的字体颜色更改为红色并使字体变为粗体。

以下示例展示了如何在实践中使用此语法。

示例:如何使用 VBA 查找列中的值

假设我们有以下数据集,其中包含有关各种篮球运动员的信息:

假设我们要在 A 列中查找球队名称“Rockets”,找到后,将单元格的字体颜色转换为红色并将字体设为粗体。

我们可以创建以下宏来执行此操作:

 Sub FindValues()

Dim rng As Range
Dim cell As Range
Dim findString As String

'specify range to look in
Set rng = ActiveSheet.Columns(" A:A ")

'specify string to look for
findString = " Rockets "

'find cell with string
Set cell = rng.Find(What:=findString, LookIn:=xlFormulas, _
                    LookAt:=xlWhole, MatchCase:=False)

If cell Is Nothing Then
    cell.Font.Color = vbBlack
Else
    cell.Font.Color = vbRed
    cell.Font.Bold = True
End If

End Sub

当我们运行这个宏时,我们会收到以下输出:

请注意,包含字符串“Rockets”的单元格中的字体现在为红色粗体。

所有其他单元格都保留其黑色字体。

请注意,代码中的MatchCase:=False参数告诉 VBA 执行不区分大小写的搜索。

因此,如果 A 列中的团队名称是“rockets”,宏将始终找到该字符串并将字体设为红色和粗体。

其他资源

以下教程说明如何在 VBA 中执行其他常见任务:

VBA:如何编写 AVERAGEIF 和 AVERAGEIFS 函数
VBA:如何编写 SUMIF 和 SUMIFS 函数
VBA:如何编写 COUNTIF 和 COUNTIFS 函数

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注