下午
我有可爱的工作查找功能,但它搜索所有列。现在我尝试对范围定义进行各种更改,并对列A进行选择限制。
我遇到的问题是它忽略了任何限制并继续以自己的方式进行。代码如下,它使用两个函数,第一个是Find,第二个是Find Next。
有人可以帮我一把,并建议我如何将搜索限制在电子表格的A栏。
Private Sub Find_Click()
Worksheets("Master").Activate
Dim strFind As String
Dim FirstAddress As String
Dim rSearch As Range
Set rSearch = Range("a1", Range(A:A).End(xlUp))
Dim f As Integer
strFind = Me.TextBox1.Value
With rSearch
Set c = .Find(strFind, LookIn:=xlValues)
If Not c Is Nothing Then
updateFields anchorCell:=c
FirstAddress = c.Address
Do
f = f + 1
Set c = .FindNext(c)
Loop While Not c Is Nothing And c.Address <> FirstAddress
If f > 1 Then
Select Case MsgBox("There are " & f & " instances of " & strFind, vbOKCancel Or vbExclamation Or vbDefaultButton1, "Multiple entries")
Case vbOK
Case vbCancel
End Select
End If
Else: MsgBox strFind & " not listed"
End If
End With
由于
答案 0 :(得分:2)
您设置范围的方式不正确。首先,您在A:A
中缺少双引号。其次,即使您使用双引号,rSearch
也始终为A1
您可以通过以下两种方式设置范围
代码1
Dim lRow As Long
'~~> ws is the relevant sheet
lRow = ws.Range("A" & ws.Rows.Count).End(xlUp).Row
Set rSearch = ws.Range("A1:A" & lRow)
代码2
Set rSearch = ws.Columns(1)
答案 1 :(得分:0)
如果您只想查看A列,请尝试将“research”范围定义为:
Range("A1").End(xlDown).Select