复制范围结束xl向下粘贴不同的Wb
问题描述:
我有一个宏记录器代码(与选择和激活),我试图简化。它目前看起来像这样:复制范围结束xl向下粘贴不同的Wb
Windows("Stambestand.xlsm").Activate
Range("AA2").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Windows("Ijking document.xlsm").Activate
Range("B3").Select
ActiveSheet.Paste
截至最近我已经开始使用变量,并希望削减代码。我正在考虑沿着这些方向:
WbStambestand.WsStam.Range("AA2", Selection, Selection.End(xlDown)).Copy WbIjk.WsIjk.range("A1").paste
Workbooks("WbStambestand").Worksheets("WsStam").Range("AA2", Selection, Selection.End(xlDown)).Copy
但是,这些不起作用。我希望你们能帮助我。非常感激。这些是我的变数(他们是宣布的)。 Ijk的是粘贴目的地。
Dim WbStambestand, WbIjk As Workbook
Dim WsIjk, WsStam As Worksheet
Set WsIjk = ActiveSheet
Set WbIjk = ActiveWorkbook
Set WsIjk = ActiveSheet
Set WbIjk = ActiveWorkbook
Set WbStambestand = Workbooks.Open(stam)
Set WsStam = WbStambestand.Worksheets("stambestand")
答
试一下这个
Sub abc()
Dim WbStambestand As Workbook
Dim WbIjk As Workbook
Dim WsIjk As Worksheet
Dim WsStam As Worksheet
Dim LastRow As Long
Dim stam As String
stam = "C:\Users\Admin\Desktop\Stambestand.xlsm" ' path with complete file name with extension.
Set WsIjk = ActiveSheet
Set WbIjk = ThisWorkbook ' workbook which has current code
Set WbStambestand = Workbooks.Open(stam)
Set WsStam = WbStambestand.Worksheets("stambestand")
LastRow = WsStam.Range("AA2").End(xlDown).Row
WsStam.Range("AA2:AA" & LastRow).Copy WsIjk.Range("B3")
End Sub
我会建议只是不减磅的代码,它很好的方式,它是在两个长行任何你的“下调”的代码是太难了阅读是值得的。 –
显然宏代码符号更快,当它不需要来回切换来选择所有的东西(即时运行它15次或者有不同数量的行)。此外,我想尽可能高效地编写代码。 关于长度,我可以使用space_分割线。 – MyName
啊所以你不想简化它的长度,你正在寻找一个更高效的速度方法? –