使用macros列复制和粘贴

我不熟悉VBA或macros,我经常使用微软的Excel。

写这个更好的方法是什么? 我想要的是复制列B和粘贴列B右下一列和其他列。

例如:

在sheet2上,我要B列在B列上

在sheet3上,我希望B列在C列并清除B列

在工作表4上,我希望B列在E列上并清除B列

在表5中,我想B列在F列和清除B列

。 在表26,我想B列在Z列和清除列B

在表27上,我想B列在AA列和清楚的B列

等等

我用“loggingmacros”来想出这个,但我想用VBA编程。 什么是复制/剪切粘贴列的最佳方法?

Sheets(2).Select Columns("B:B").Select Sheets(3).Select Columns("B:B").Select Selection.Copy Columns("C:C").Select ActiveSheet.Paste Application.CutCopyMode = False Columns("B:B").Select Selection.ClearContents Sheets(4).Select Columns("B:B").Select Selection.Copy Columns("D:D").Select ActiveSheet.Paste Application.CutCopyMode = False Columns("B:B").Select Selection.ClearContents Sheets(5).Select Columns("B:B").Select Selection.Copy Columns("E:E").Select ActiveSheet.Paste Application.CutCopyMode = False Columns("B:B").Select Selection.ClearContents Sheets(6).Select Columns("B:B").Select Selection.Copy Columns("F:F").Select ActiveSheet.Paste Application.CutCopyMode = False Columns("B:B").Select Selection.ClearContents Sheets(7).Select Columns("B:B").Select Selection.Copy Columns("G:G").Select ActiveSheet.Paste Application.CutCopyMode = False Columns("B:B").Select Selection.ClearContents Sheets(8).Select Columns("B:B").Select Selection.Copy Columns("H:H").Select ActiveSheet.Paste Application.CutCopyMode = False Columns("B:B").Select Selection.ClearContents Sheets(9).Select Columns("B:B").Select Selection.Copy Columns("I:I").Select ActiveSheet.Paste Application.CutCopyMode = False Columns("B:B").Select Selection.ClearContents 

怎么样:

 Sub ytrewq() Dim i As Long For i = 1 To Sheets.Count With Sheets(i) .Columns(2).Copy .Columns(i + 2) End With Next i End Sub 

编辑#1:

清除每个表中的B列:

  Sub ytrewq() Dim i As Long For i = 1 To Sheets.Count With Sheets(i) .Columns(2).Copy .Columns(i + 2) .Columns(2).Clear End With Next i End Sub 

编辑#2

这从Sheet3开始:

 Sub ytrewq() Dim i As Long For i = 3 To Sheets.Count With Sheets(i) .Columns(2).Copy .Columns(i) .Columns(2).Clear End With Next i End Sub 

你可以写一个Sub来减less代码的一些重复性。

防爆。

 Sub copyPaste(sheetNum as integer, copyCol as string, pasteCol as string) Sheets(sheetNum).Select Columns(copyCol).Copy Columns(pasteCol) Columns(copyCol).ClearContents end sub