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 函数