在VBA中查找函数 – 范围限制
下午
我有可爱的工作查找function工作,但它search所有列。 现在我已经尝试对范围定义进行各种更改,并对A列进行了select限制。
我遇到的问题是,它忽视了任何限制,并进行自己的甜蜜的方式。 代码如下,它使用两个函数,第一个是Find,第二个是Find Next。
有人可以给我一个手,并build议如何将search限制在电子表格的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
谢谢
你设置范围的方式是不正确的。 首先,你在A:A
中缺less双引号。 其次,即使你把双引号, rSearch
将永远是A1
这里有两种方法可以设置你的范围
- 查找最后一行,然后创build您的范围
代码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)
如果你只想看看列A,试着定义“rsearch”范围:
Range("A1").End(xlDown).Select