我已经对此进行了一段时间的修改,下面的代码可以正常工作,但是它的搜索量超出了我的期望。我希望仅搜索C列而不是整个工作表。我尝试将更Cells.Find
改为,Range("C1:C10000").Find
但未返回任何匹配项。
真的很困扰这一点。
Dim r As Range
Set r = Sheets("State Agent List").Range("C1:C10000").Find(What:=ComboBox22.Value, _
After:=ActiveCell, LookAt:=xlPart, SearchOrder:=xlByRows)
If Not r Is Nothing Then
r.Select
ActiveWindow.ScrollRow = ActiveCell.Row
Else
MsgBox "Location not listed."
End If
您的问题是使用ActiveCell
它,如果碰巧不在此范围内,则C1:C10000
不会返回任何内容。试试这个:
Dim searchRng As Range: Set searchRng = Sheets("State Agent List").Range("C1:C10000")
Dim r As Range
Set r = searchRng.Find(What:=ComboBox22.Value, After:=searchRng(searchRng.Count))
该参数searchRng(searchRng.Count)
与您正在处理的范围的最后一个单元格有关。它可以工作,但是可以通过以下方式显式编写:
searchRng.Cells(searchRng.Cells.Count)
为什么我们需要将After
参数设置为最后一个单元格?
主要原因是从第一个单元格开始搜索。高温超导
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句