VBA循环多次将特定列的范围复制并粘贴到另一个工作簿中

问题描述 投票:0回答:1

我正在尝试找出最快的Loop方法,以将10倍范围的列(“ A16:J1338”)从源工作簿复制到特定工作簿的特定列(C1)。我想要该宏将数据粘贴到最后一个可用的空白单元格下面(在COL C下)

这是我的代码;

Sub copy_Loop()
Dim LastRow As Long
Range("A16:J1338").Select
Selection.Copy
Workbooks.Open "C:\Users\Manzurfa\Desktop\1. Forecast Amalgamation.xlsx"
Range("C1").Select
ActiveSheet.Paste
Windows("Merrell CA Forecast Template - Alain Travers.xlsm").Activate
Range("K18:O1338").Select
Selection.Copy
Windows("1. Forecast Amalgamation.xlsx").Activate
Range("K3").Select
 Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
Windows("Merrell CA Forecast Template - Alain Travers.xlsm").Activate
Range("A16:J1338").Select
Selection.Copy
 Windows("1. Forecast Amalgamation.xlsx").Activate     
Range("B1").Select
Selection.End(xlDown).Select
ActivCell.Offset(0, 1).Select
Selection.End(xlUp).Select
ActivCell.Offset(1, 0).Select
ActiveSheet.Paste

ActiveWorkbook.Save
End Sub

列(“ A16:J1338”)之间有空白行,我希望宏忽略空白并在最后可用的空白单元格下循环进行复制粘贴。

我将非常感谢您对此提供的任何帮助。

excel vba loops
1个回答
0
投票

您的FAR .Select命令太多,您可以告诉excel没有它们的地方写数据。此外,鉴于名称太长,需要整理工作,因此需要将工作簿和工作表设置为变量。

然后您可以通过基本的方法摆脱选择wsTo.Range("B1").Resize(1, Range.Columns.Count).value = wsFr.Range("A16:J1338").value这只是概念性的,您需要创建范围,工作表和工作簿变量。另外,关闭计算和屏幕更新将大有帮助。

我将https://www.youtube.com/watch?v=GCSF5tq7pZ0称为多合一软件包,以加快您的宏程序的大小。

© www.soinside.com 2019 - 2024. All rights reserved.