2015-10-12 101 views
2

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

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 

感谢您的帮助

回答

3

循环的工作表并不能使他们活跃。你想要这样的东西。

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 
+0

你在技术上不需要做任何“激活”,我已经稍微修改了你的答案:) –

+1

我也在做这个改变。谢谢大卫 – MatthewD

+0

它的工作!感谢您的帮助! –

相关问题