1
我看不到我在哪里出错,任何帮助表示赞赏。 我试图剪切并粘贴其中有'解决'这个词的任何行到另一个电子表格,但是代码在循环开始时被阻塞在cl.activate上。错误1004选择范围级别的方法失败
Sub FindString()
Dim SearchString As String
Dim SearchRange As Range, cl As Range
Dim FirstFound As String
Dim sh As Worksheet
'Open first item to search and paste destination
Workbooks.Open "G:\BS\Josh Whitfield\Credit_Chasing\NEW PROCESS\Markerstudy.xlsx"
Workbooks.Open "G:\BS\Josh Whitfield\Credit_Chasing\NEW PROCESS\solved results.xlsx"
Workbooks("markerstudy").Activate
' Set Search value
SearchString = "solved"
Application.FindFormat.Clear
' loop through all sheets
For Each sh In ActiveWorkbook.Worksheets
' Find first instance on sheet
Set cl = sh.Cells.Find(What:=SearchString, _
After:=sh.Cells(1, 1), _
LookIn:=xlValues, _
LookAt:=xlPart, _
SearchOrder:=xlByRows, _
SearchDirection:=xlNext, _
MatchCase:=False, _
SearchFormat:=False)
If Not cl Is Nothing Then
' if found, remember location
FirstFound = cl.Address
' format found cell
Do
cl.Activate
ActiveCell.EntireRow.Cut
Workbooks("solved results").Activate
Range("A1").Select
If ActiveCell <> "" Then
ActiveCell.Offset(1, 0).Select
ActiveCell.PasteSpecial xlPasteAll
Else
ActiveCell.PasteSpecial xlPasteAll
End If
' find next instance
Set cl = sh.Cells.FindNext(After:=cl)
' repeat until back where we started
Loop Until FirstFound = cl.Address
End If
Next
End Sub
或者只是使用'cl.EntireRow.Cut'和完全跳过激活。 (否则,你也需要先激活正确的工作簿) – Rory
@Rory:的确,我只是停止了激活问题,并没有阅读下一行...... 但是,如果OP不需要,这是一个更好的命题使用它(我这样做“调试”很容易) – R3uK
非常感谢你们,都工作得很好。非常感激。 –