我有一个包含22列数据的工作表,我需要将从第3列开始的第一列和各列复制并粘贴到同一工作簿中的新工作表中。例如,我将选择A列和C列,并将这两列复制到新工作表中。然后,我将返回到初始工作表并选择A列和D列,并将这两列复制到新工作表等。
下面的代码遍历所有列,但它总是选择连续范围,而不仅仅是列A和系列中的下一列。我的初始代码如下:
Sub CashFlowColumnTabSplit()
ActiveSheet.Name = "Main"
For i = 3 To 22
Range(Columns(1), Columns(i)).Select
Selection.Copy
Sheets.Add After:=ActiveSheet
Range("A1").Select
ActiveSheet.Paste
Sheets("Main").Select
Next i
End Sub
答案 0 :(得分:1)
尝试:
Sub CashFlowColumnTabSplit()
Dim Source_Sheet As Worksheet
Dim Target_Sheet As Worksheet
Dim i As Long
Set Source_Sheet = ThisWorkbook.Sheets("Main")
For i = 3 To 22
Set Target_Sheet = ThisWorkbook.Sheets.Add(After:=Source_Sheet)
Application.Union(Source_Sheet.Columns(1), Source_Sheet.Columns(i)).Copy
Target_Sheet.Range("A1").PasteSpecial xlPasteAll
Next i
End Sub
答案 1 :(得分:0)
下面的代码可以解决问题:
Sub CashFlowColumnTabSplit2()
ActiveSheet.Name = "Main"
For i = 3 To 22
Application.Union(Columns(1), Columns(i)).Copy
Sheets.Add After:=ActiveSheet
Range("A1").Select
ActiveSheet.Paste
Sheets("Main").Select
Next i
End Sub