使用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