我有一张带有特定数字列的表格。我需要复制列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
帮助将不胜感激。谢谢。
答案 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