将列从一个表复制到另一个表
这个macros的工作正常,但我知道这是没有效率的,必须有一个更好的方法来做到这一点。 我如何避免必须。select表单?
Sub ReportFormatter() Columns("BS:BS").Select Selection.Copy Sheets("Sheet2").Select Range("A1").Select ActiveSheet.Paste Sheets("Sheet1").Select Columns("X:X").Select Application.CutCopyMode = False Selection.Copy Sheets("Sheet2").Select Range("B1").Select ActiveSheet.Paste Sheets("Sheet1").Select Columns("Y:Y").Select Application.CutCopyMode = False Selection.Copy Sheets("Sheet2").Select Range("C1").Select ActiveSheet.Paste Sheets("Sheet1").Select Columns("H:H").Select Application.CutCopyMode = False Selection.Copy Sheets("Sheet2").Select Range("D1").Select ActiveSheet.Paste
Sub CopyCols() Sheets("Sheet1").Columns("X:X").Copy Destination:=Sheets("Sheet2").Range("B1") Sheets("Sheet1").Columns("Y:Y").Copy Destination:=Sheets("Sheet2").Range("C1") Sheets("Sheet1").Columns("H:H").Copy Destination:=Sheets("Sheet2").Range("D1") End Sub
Sub ReportFormatter() With Sheets("Sheet1") .Columns("BS").Copy Sheets("Sheet2").Range("A1") .Columns("X").Copy Sheets("Sheet2").Range("B1") .Columns("Y").Copy Sheets("Sheet2").Range("C1") .Columns("H").Copy Sheets("Sheet2").Range("D1") End With End Sub
或简单地说:
Sub CopyCols() Sheets("Sheet2").Columns("B:B") = Sheets("Sheet1").Columns("X:X") Sheets("Sheet2").Columns("C:C") = Sheets("Sheet1").Columns("Y:Y") Sheets("Sheet2").Columns("D:D") = Sheets("Sheet1").Columns("H:H") End Sub