VBA:循环从主工作表复制某些列,创建新工作表并粘贴

时间:2014-08-07 20:54:30

标签: excel vba excel-vba

我有一张带有特定数字列的表格。我需要复制列A和从列B开始的另一列,创建一个新工作表并将那些列粘贴到那里。然后我想循环它以便它这次复制列A和C,然后创建一个新的工作表并粘贴,依此类推,直到它到达主工作表上的最后一列。 A列是固定的,因此始终复制,复制的第二列是变化的列。我在循环中想到这样的东西

Sheets(1).Activate
Range("A1:A14").Select
'This is where I need to copy the next column over and increment every time the code loops
Selection.Copy
Sheets.Add After:=Sheets(Sheets.Count)
ActiveSheet.Paste

帮助将不胜感激。谢谢。

1 个答案:

答案 0 :(得分:0)

最好的办法是在Range()中使用Cells()来循环遍历每一列。这段代码可以帮助你:

Sub columnCopy()

Dim sh1 As Worksheet
Set sh1 = sheets("Sheet1")

lc = sh1.Cells(1, Columns.Count).End(xlToLeft).Column ' Last Column

For i = 2 To lc

    sh1.Range(sh1.Cells(1, 1), sh1.Cells(12, 1)).Copy
    Worksheets.Add
    sheets(1).Cells(1, 1).PasteSpecial Paste:=xlPasteValues

    sh1.Range(sh1.Cells(1, i), sh1.Cells(12, i)).Copy
    sheets(1).Cells(1, 2).PasteSpecial Paste:=xlPasteValues

Next i

End Sub