首页 > 解决方案 > 为什么复制/粘贴与复制粘贴特殊有不同的编码?

问题描述

这是一些VBA代码

Set L060 = Workbooks("L060.xlsx").Worksheets("Sheet1")
Set wsDest = Workbooks("Variation_week" & WeekFolder & ".xlsm").Worksheets("RM consumption")
SelectionL060 = L060.Cells(L060.Rows.Count, "A").End(xlUp).Row
Adestination = wsDest.Cells(wsDest.Rows.Count, "A").End(xlUp).Offset(2).Row
L090.Range("A2:M" & SelectionL060).Copy _
wsDest.Range("A" & Adestination)
Workbooks("L060.xlsx").Close SaveChanges:=False

L060.Range("A2:M" & SelectionL060).Copy _ wsDest.Range("A" & Adestination)如果您不在Copyand之间添加下划线,为什么不起作用wsDest?其实不加的话,中间会自动出现一个空格,Range导致("A" & Adestination)代码失效。

L060.Range("A2:M" & SelectionL060).Copy wsDest.Range("A" & Adestination).PasteSpecial Paste:=xlPasteValue没有任何下划线工作正常?

标签: excelvba

解决方案


下划线只是一个续行字符,意味着下一行实际上仍然是初始行的一部分。所以这:

L090.Range("A2:M" & SelectionL060).Copy _
wsDest.Range("A" & Adestination)

与此相同:

L090.Range("A2:M" & SelectionL060).Copy wsDest.Range("A" & Adestination)

其中目标范围是传递给Copy方法的参数。当您使用它们时CopyPasteSpecial它们实际上是两个独立的命令,这就是它们位于不同行的原因。


推荐阅读