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
或者,使用“ Match
function:
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