0

我有一个宏,可以将代码从一个工作簿复制到另一个工作簿。我的代码很长,如果可能的话我想缩短它(也更独立于宏记录器)

我的代码如下所示:

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
4

1 回答 1

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

于 2013-07-12T08:44:05.957 回答