使用循环复制一系列列

时间:2015-03-30 23:48:12

标签: excel vba excel-vba

您好我想将工作表的所有列复制到另一个工作表下面的另一个工作表中。

                                  Sheet A 

Column          A            B             C  ....................BL

             ValueA        ValueB       ValueC..................ValueBL
             ValueA2       ValueB2      ValueC2.................ValueBL2
                 .             .            .                        .
                 .             .            .                        .
             ValueA10       ValueB10     ValueC10...............ValueBL10

                                Target Sheet 

            Value A
               .
               .
            Value A10
            Value B
               . 
               .
            Value B10
            Value C
               .
               .
            Value C10

等等。基本上每列都有多个值(行),并且有数百列。我想将所有列复制到另一列之下。这将需要一个循环,但我不明白如何使用它。因为

set ws1 As SheetA
set ws2 As Target  
With ws1
LastCol = .Cells(1, .Columns.Count).End(xlToLeft).Column
End With
Lastrow = period.Range("B" & Rows.Count).End(xlUp).Row

For i=1 to Lastcol
    ws1.Range("?" & lastrow).copy  ws2.Range("a65536").End(xlUP).Offset(1,0)
Next i

我没有得到什么而不是"?"。感谢任何帮助。感谢。

编辑:

set ws1 As SheetA
set ws2 As Target  
With ws1
LastCol = .Cells(1, .Columns.Count).End(xlToLeft).Column
End With
Lastrow = ws1.Range("B" & Rows.Count).End(xlUp).Row
For i = 1 To Lastcol
    For l = 4 To lastrow
        ws1.Cells(l, i).Copy ws2.Range("a65536").End(xlUp).Offset(1, 0)
    Next l
Next i

我的数据从第4行开始,这就是我从4开始的原因

1 个答案:

答案 0 :(得分:0)

在我看来,你需要两个FOR循环...一个循环遍历列然后循环行。另外,我会使用" Cells"与"范围"在这种情况下,并使用循环中的列号。还有查找第一行和最后一行和列的方法,但你没有问过这个......

Sub test()
Set ws1 = Sheets(1)
Set ws2 = Sheets(2)
Lastcol = 5
lastrow = 10

For i = 1 To Lastcol
    For l = 1 To lastrow
        ws1.Cells(l, i).Copy ws2.Range("a65536").End(xlUp).Offset(1, 0)
    Next l
Next i

End Sub