2016-07-07 262 views
0

我想通過將來自不同工作表的信息複製到摘要工作表中來進行彙總。更具體地說,我試圖將sheet3中的單元格O3和O4分別複製到sheet1中的單元格D3和E3中。然後,我想繼續前進,並將單元格O3和O4從表單4分別複製到單元格1中的單元格D4和E4,以此類推我的所有表單。使用循環宏複製和粘貼

我對宏編碼完全陌生,所以非常感謝任何幫助,謝謝。我假設你將不得不使用循環。

P.S工作表是以公司的名稱命名的(例如「DataGroup」而不是「Sheet3」)會影響代碼嗎?

+0

到目前爲止你做了什麼?選中此項可幫助您啓動[link](http://stackoverflow.com/questions/37107574/copy-and-paste-specific-cells-from-one-worksheet-to-another) –

+0

打開宏錄製器,然後請按照上面概述的步驟進行操作。這會給你一些代碼開始,然後通讀[如何避免'.Select'](http://stackoverflow.com/questions/10714251/how-to-avoid-using-select-in-excel-vba -macros)將其收緊,並學習如何直接處理數據。 – BruceWayne

+0

除非需要複製格式,否則不要在Excel中使用複製和粘貼。只需使用單元格/範圍及其值並設置它們即可。 – Mono

回答

1

如果您希望循環顯示錶格,則不需要明確引用它們,即Sheets("DataGroup"),那麼可以使用Sheets(1),因此可以很容易地通過每個整數進行循環。

例如

Sub Copying() 
Dim i As Integer, j As Integer 
j = Sheets.Count 
For i = 2 To j 
    Sheets(1).Range("D" & i + 1) = Sheets(i).Range("O3").Value 
    Sheets(1).Range("E" & i + 1) = Sheets(i).Range("O4").Value 
Next i 
End Sub 
+0

除非絕對必要,否則請勿使用複製和粘貼並選擇和激活功能。複製和粘貼會擦除剪貼板,並且通常會導致「閃爍」宏。使用範圍的值並將它們分配給其他範圍。 – Mono

+0

我認爲他是循環後的幫助,但我明白你的觀點,並將相應地編輯,但不確定它必然保證一票否決,雖然它回答了問題... –

+0

回答這個問題是一回事,但一個好的答案是更好的答案會導致不良的習慣imho。 – Mono

1

如果有一個包含工作簿一些工作表,並將它們中的一個被稱爲Summary,那麼這個代碼將來自每個其他工作表的單元格A1的值複製到的Summary A列。您可以根據自己的需要進行調整。

Dim ws As Worksheet, rowDest As Integer 
rowDest = 1 
For Each ws In ThisWorkbook.Worksheets 
    If ws.Name <> "Summary" Then 
     Worksheets("Summary").Cells(rowDest, 1).Value = ws.Range("A1").Value 
     rowDest = rowDest + 1 
    End If 
Next ws