2014-02-18 99 views
1

我有一個宏,但它似乎並沒有工作。我有一個有多個工作表的工作簿。我基本上想要將單元格B1,G1,M94都複製到單獨的「摘要」工作表中。如果有更多的A5,B5和C5等,複製單元格到A4 B4和C4。Microsoft Excel宏編碼問題

我的編碼如下。我試圖做到這一點,所以它只用於一張紙,但需要它約10張名單不同。

Sub SummurizeSheets() 
Dim ws As Worksheet 

Application.ScreenUpdating = False 
Sheets("Summary").Activate 

For Each ws In Worksheets 
    If ws.Name <> "17B CUNNINGHAM" Then 
     ws.Range("B1, G1, M94").Copy 
     Worksheets("Summary").Cells(Rows.Count, 3).End(xlUp).Offset(1, 0) _ 
      .PasteSpecial (xlPasteValues) 
    End If 
Next ws 
End Sub 

回答

1

的問題,你將有就是你不能複製/粘貼範圍內,你已嘗試(多個部分)的方式。這應該工作:

Sub SummurizeSheets() 
Dim ws As Worksheet, wsSummary As Worksheet 
Dim c As Range 

Application.ScreenUpdating = False 
Set wsSummary = Sheets("Summary") 
' Set destination cell 
Set c = wsSummary.Range("A4") 

For Each ws In Worksheets 
    If ws.Name <> "17B CUNNINGHAM" And ws.Name <> "Summary" Then 
     ws.Range("B1").Copy 
     c.PasteSpecial (xlPasteValues) 
     ws.Range("G1").Copy 
     c.Offset(0, 1).PasteSpecial (xlPasteValues) 
     ws.Range("M94").Copy 
     c.Offset(0, 2).PasteSpecial (xlPasteValues) 
     ' Move destination cell one row down 
     Set c = c.Offset(1, 0) 
    End If 

Next ws 

Application.ScreenUpdating = True 
End Sub 

我使用了一個目標單元格的地方然後可以抵消下一行的粘貼,以便您可以將其用於多個工作表。還排除了從For Each彙總表並重置ScreenUpdating

+0

這工作完美。你的冠軍非常感謝你 – Aussiehelper