我需要做的是使用Excel宏以下内容。
这是我使用Microsoft支持页面
提出的代码Dim x As Integer
NumRows = Range("L2", Range("L600").End(xldown)).Rows.Count
Range("L2").Select
For x = 1 To NumRows
Sheets("Sheet2").Select
Range("A1:G24").Select
Selection.Copy
Sheets("Sheet1").Select
Cells.Find(What:="Recess Size", After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Activate
ActiveSheet.Paste
ActiveCell.Offset(1, 0).Select
Next
不幸的是,这会进入一个连续的循环,直到我按下ESC并且每次其他操作都被粘贴到左边的1列时才会停止?代码中有什么不对的吗?
希望有人可以提供帮助。
答案 0 :(得分:0)
Activesheet和Activecell太模糊了。
如果您正在使用多表格程序,最好指定您正在使用的工作表或使用“With Sheets(”Sheet1“)”作为“Sheet1”的倍数。
这可能不是剪切和粘贴,但你明白我的意思:
Sub Sheetspractice()
NumRows = Sheets("Sheet1").Range("L2:L" & Rows.Count).End(xlup).Row
Sheets("Sheet1").Range("L2").Select
For x = 1 To NumRows
Sheets("Sheet2").Range("A1:G24").Select
Selection.Copy
Sheets("Sheet1").Cells.Find(What:="Recess Size", After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Activate
Sheets("Sheet1").Paste
Sheets("Sheet1").Range("A1").Offset(1, 0).Select
Next
End Sub