我有一个宏将代码从一个工作簿复制到另一个工作簿。我的代码很长,如果可能的话我想缩短它(也可以更加独立于宏录制器)
我的代码如下所示:
Workbooks("export.XLSX").Activate
Range("A2:A" & Range("A" & Rows.Count).End(xlUp).row).Copy
Workbooks("ORDERS.CSV").Activate
Range("X3").Select
Selection.End(xlDown).Offset(1, -18).Select
ActiveSheet.Paste
Workbooks("export.XLSX").Activate
此块针对不同的列重复。有没有办法缩短这个?
更多例子:
Range("C2:C" & Range("A" & Rows.Count).End(xlUp).row).Copy
Workbooks("ORDERS.CSV").Activate
Range("X3").Select Selection.End(xlDown).Offset(1, -14).Select
ActiveSheet.Paste
Workbooks("export.XLSX").Activate
Range("G2:G" & Range("A" & Rows.Count).End(xlUp).row).Copy
Workbooks("ORDERS.CSV").Activate
Range("X3").Select Selection.End(xlDown).Offset(1, -13).Select
ActiveSheet.Paste
Workbooks("export.XLSX").Activate
答案 0 :(得分:0)
首先添加Application.ScreenUpdating = False
Workbooks("export.XLSX").Range("A2:A" & Range("A" & Rows.Count).End(xlUp).Row).Copy
Workbooks("ORDERS.CSV").Range("X3").End(xlDown).Offset(1, -18).Select.PasteSpecial _
Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
然后按照相同的模式
Application.Screenupdating = True