macros复制和粘贴

我试图创build一个macros,将从一个工作表中复制数据,并放置到另一个。 这我可以做没有问题。 但是,当我想在另一行使用相同的macros是我的问题。 基本上我想要做的是从sheet1复制单元格D11,并将其放置在单元格B4的sheet2等(我正在做的显然比这更复杂,但在这里并不重要)。

我的问题是,当我想现在运行这个macros,并从sheet1复制单元格D12并粘贴到B5在sheet2粘贴的值跳转到B4。 我明白,这是因为VBcode说粘贴复制的值的地方。

我的问题是如何将它粘贴到我select的行中? 也许基于我select的行/单元格。

当前代码,通过录制macros写入

Sheets("sheet1").Select Range("D11").Select Selection.Copy Sheets("sheet2").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Range("B4").Select 

我假设最后一行是我需要做出改变的地方,但我不确定要改变什么。 谢谢! 任何和所有的帮助,不胜感激。

一般来说,尽量避免select复制粘贴( 在VBA复制粘贴过程中导致运行时错误1004的“Application.Calculation = xlCalculationManual”语句中提供了详细的讨论)。 相反,使用直接复制语句,这将解决您的问题,并显着提高性能:

清单1

 Sub DirectCopySample() Application.ScreenUpdating = False Sheets("Sheet1").Range("D11").Copy Destination:=Sheets("Sheet2").Range("B5") Application.ScreenUpdating = True End Sub 

在清单1中,Sub执行从单元格: Sheets("Sheet1").Range("D11")到单元格: Sheets("Sheet2").Range("B5")直接拷贝。

此外,您的初始复制粘贴子可以简化(它也将使其工作,虽然清单1是首选)

清单2

 Sub CopyPasteSample() Sheets("sheet1").Range("D11").Copy Sheets("sheet2").Range("B5").PasteSpecial Paste:=xlPasteValues End Sub 

希望这会有所帮助。 最好的祝福,

你似乎已经录制了一个macros,并试图重播它。 这是一个真正的VBA代码(不是macrosloggingtypes):

 Sheets("sheet2").Range("B5") = Sheets("sheet1").Range("D11").Value 

这就是全部!

顺便说一句,你的困境来自PasteSpecial方法复制到当前选定单元格的事实。 你已经尝试过运行这个macros几次, 范围(“B4”)。select线做了伎俩。 如果你坚持你的方法插入范围(“B5”)。selectPasteSpecial