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

時系列があります(最初の列が日付、2番目が値)。シリーズの最初の 5 つの値を上から選択し、それをコピーして Excel ファイルの 2 番目のワークシートに貼り付けてから、最初のシートに戻り、シリーズの次の 5 つの値を取得して、次のワークシートに移動しようとしています。シートを開き、次の列として 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 の長さで並べてスタックしようとしています。ありがとうございます。

4

1 に答える 1

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
于 2012-11-07T00:18:47.940 に答える