如何仅搜索一列中的值而不是搜索整个工作表。

时间:2013-11-08 18:34:47

标签: excel vba

我正在使用的宏打开一个输入框,您可以在其中输入要搜索的内容,当找到该值时,它会突出显示整行。唯一的问题是它搜索整个工作表而不只是一列。我希望它只在B列中搜索,否则搜索没有意义,因为它在其他列中选择匹配的值。

这是我正在使用的代码。

Sub Seroquel_25000_1mod1()
Dim SrchRng3 As Range

Dim c3 As Range, f As String

Set SrchRng3 = ActiveSheet.Range("B8", ActiveSheet.Range("B65536").End(xlUp))
AGAIN:
srchItem = InputBox("Please Enter the product CODE", "Product Search")
Set c3 = SrchRng3.Find(srchItem, LookIn:=xlValues)
If Not c3 Is Nothing Then
f = c3.Address
With Range("B" & c3.Row & ":M" & c3.Row)
.Select
End With
End If
End Sub

1 个答案:

答案 0 :(得分:0)

因为您正在使用表,所以您需要使用表名和字段名来指定搜索范围:

Set SrchRng3 = ActiveSheet.Range("tablename[fieldname]")

如果您不知道表名,找到它的一种方法是单击表中的任何单元格,然后查看“设计”选项卡。字段名称是表格中该列上方的标题单元格的文本。关于如何在VBA中引用表和表数据,Here是一个不错的参考。