2013-03-26 118 views
0

有人可以幫助您使用vba代碼將範圍從多個工作表(52周)複製到同一工作簿中的彙總表中。每個工作表中的範圍相同。我希望數據被複制並在ssummary工作表中列52粘貼,從week1到第52周從多個工作表複製範圍到單個工作表

我發現這個代碼在網上:

Sub SummurizeSheets() 
    Dim ws As Worksheet 
    Application.ScreenUpdating = False 
    Sheets("Summary").Activate 
    For Each ws In Worksheets 
     If ws.Name <> "Summary" Then 
      ws.Range("F46:O47").Copy 
      Worksheets("Summary").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).PasteSpecial (xlPasteValues) 
     End If 
    Next ws 
End Sub 
+0

你試過了什麼? – 2013-03-26 12:33:15

+0

Sub SummurizeSheets()Dim ws As Worksheet Application.ScreenUpdating = False Sheets(「Summary」)。Activate For Each ws In Worksheets If ws.Name <>「Summary」Then ws.Range(「F46:O47」)。Copy Worksheets (「Summary」)。Cells(Rows.Count,1).End(xlUp).Offset(1,0).PasteSpecial(xlPasteValues)End If Next ws End Sub – user2211547 2013-03-26 12:36:27

+0

運行此代碼時會出現什麼錯誤? – 2013-03-26 12:40:21

回答

1

試試下面的代碼。也設置應用。 ScreenUpdating = True

Sub SummurizeSheets() 
    Dim ws As Worksheet 
    Dim j As Integer, col As Integer 

    Application.ScreenUpdating = False 

    Sheets("Summary").Activate 


    For Each ws In Worksheets 
     If ws.Name <> "Summary" Then 
      ws.Range("k3:k373").Copy 

      col = Worksheets("Summary").Range("IV1").End(xlToLeft).Column + 1 
      Worksheets("Summary").Cells(1, col).PasteSpecial xlPasteValues 
      Application.CutCopyMode = False 

     End If 

    Next ws 
    Columns(1).Delete 
    Range("A1").Activate 
    Application.ScreenUpdating = True 
End Sub 
+0

嗨,謝謝,但代碼是從工作表中複製公式而不是值? – user2211547 2013-03-26 16:01:25

+0

@ user2211547我已經更新了代碼。請檢查我是否有任何問題。 – 2013-03-26 16:36:42

+0

差不多......!它複製數據,但粘貼第一個工作嚮導後創建一個空白列。第二張紙後有2個空白欄,第三張紙後有3張空白紙等。 – user2211547 2013-03-26 16:40:08

相關問題