在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

这里有两种方法可以设置你的范围

  1. 查找最后一行,然后创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) 
  1. 拿整个专栏

代码2

 Set rSearch = ws.Columns(1) 

如果你只想看看列A,试着定义“rsearch”范围:

 Range("A1").End(xlDown).Select