为工作簿中的所有工作表循环不起作用

我会复制粘贴工作簿中所有工作表的最后一行的工作表的第一个单元格,并且我的代码不工作,代码只在活动工作表上完成。

Sub Macro5() ' ' Macro5 Dim ws As Worksheet For Each ws In ActiveWorkbook.Worksheets Range("A2").Copy Destination:=Range("A3:A" & Cells(Rows.Count, "B").End(xlUp).Row) Next ws End Sub 

谢谢你的帮助

循环工作表不会使它们处于活动状态。 你想要这样的东西。

  Dim WS As Excel.Worksheet Dim iIndex As Integer For iIndex = 1 To ActiveWorkbook.Worksheets.count Set WS = Worksheets(iIndex) With WS 'Do something here. .Range("A2").Copy Destination:=.Range("A3:A" & .Cells(.Rows.Count, "B").End(xlUp).Row) End With Next iIndex 

你可以在你的循环中使用ws,但是我总是设置对象。

  For Each ws In ActiveWorkbook.Worksheets ws.Range("A2").Copy Destination:=ws.Range("A3:A" & Cells(Rows.Count, "B").End(xlUp).Row) Next ws