2012-11-06 58 views
0
1/2012 36.5 
2/2012 37.1 
3/2012 37.5 
4/2012 37.9 
5/2012 38.0 
6/2012 38.1 
7/2012 38.3 

我有一個時間序列(日期爲第一列,值爲第二列)。我想從頂部選擇系列的前5個值,將其複製並粘貼到Excel文件中的第二個工作表中,然後返回到第一個工作表,獲取系列的下五個值,轉到下一個並將5個值作爲下一列。所以我試圖在下一張表格上並排放置5個系列。我怎麼做?堆疊時間序列

到目前爲止,我一直在嘗試這個過程在同一頁上,這是我到目前爲止。

Range(ActiveCell, ActiveCell.Offset(5, 0)).Copy 
ActiveCell.Offset(0, 5).PasteSpecial 
ActiveCell.End(xlDown).Select 
ActiveCell.Offset(1, 0).Select 
ActiveCell.End(xlToLeft).Select 
Range(ActiveCell, ActiveCell.Offset(5, 0)).Copy 
ActiveCell.Offset(0, 5).PasteSpecial 

任何幫助,將不勝感激。我再次嘗試以5個長度並排堆疊系列。謝謝!

回答

0
Sub TT() 

Const BLOCK_SIZE As Long = 5 
Dim rng As Range, rngDest As Range 

    Set rng = ActiveCell.Resize(BLOCK_SIZE, 1) 
    Set rngDest = ActiveSheet.Parent.Sheets(2).Range("A1") 

    Do While Application.WorksheetFunction.CountA(rng) > 0 
     rngDest.Resize(BLOCK_SIZE, 1).Value = rng.Value 
     Set rng = rng.Offset(BLOCK_SIZE, 0) 
     Set rngDest = rngDest.Offset(0, 1) 
    Loop 

End Sub 
+0

謝謝Tim!我一定會嘗試一下。 – gabriel

+0

試圖運行此代碼,但它不斷給我一個錯誤?我究竟做錯了什麼?在VBA你使用 「設置」 功能,然後有指定一個數據陣列:( 「10D 5D」)複製 範圍( 「G5」)PasteSpecial的或細胞(5,7).PasteSpecial 範圍。在代碼中調用該數組的能力? 設置datarng =範圍(「A1:D7」) – gabriel

+0

這不是我發佈的代碼,所以我不確定你要在那裏做什麼。我認爲你使用的是pastespecial,因爲你只是想傳遞值:是這樣嗎? –