Excelmacros将查找特定的文本,如果find使单元格文本正在滚动到电子表格的顶部

我已经为我正在处理的问答部分制作了一个电子表格,并且在单击button问题1时将macros设置为问题1。 问题一macros正在寻找一个关键的工作,在这种情况下,Q1 – 我将粘贴下面的代码工作,只要没有额外的单元格插入。

这是我正在使用的代码:

Sub Question01() Dim myRange As Range Dim myCell As Range Set myRange = Range("A30:A10000") For Each myCell In myRange If myCell Like "Q1" Or _ myCell Like "Q1" Then Range("A75").Select ActiveWindow.ScrollRow = ActiveCell.Row End If Next myCell 

结束小组

我认为问题在于范围(“A75”)。select好像所有东西都是单独工作的,但是当在A75上面添加一个空行时,关键工作Q1不再位于电子表格的顶部,而是一个从应该在的位置开始。

在此先感谢您的帮助!

丹尼

我认为问题是与范围(“A75”)。select

是的,这是因为Range("A75").Select使得A75成为ActiveCell ,所以下面的语句将滚动到… A75(活动单元格)。

 ActiveWindow.ScrollRow = ActiveCell.Row 

我可能会使用Find方法而不是蛮力迭代:

 Sub Question01() Dim myRange As Range Dim myCell As Range Set myRange = Range("A30:A10000") Set myCell = myRange.Find("Q1", myRange.Cells(1), LookAt:=xlWhole) If Not myCell Is Nothing Then ActiveWindow.ScrollRow = myCell.Row ' and/or: Application.GoTo myCell Else ' The value is not found in the range, so inform you: MsgBox "Not found!" End If End Sub 

或者,使用“ Matchfunction:

 Sub Question01() Dim myRange As Range Dim myRow As Variant '### NOTE THIS CHANGE! Set myRange = Range("A30:A10000") myRow = Application.Match("Q1", myRange, False) If Not IsError(myRow) Then ActiveWindow.ScrollRow = myRow ' and then select/activate the cell: Application.GoTo Cells(1, myRow) Else ' The value is not found in the range, so inform you: MsgBox "Not found!" End If End Sub