从一个工作簿到另一个工作簿的VBA副本表(仅限值和格式)

时间:2016-09-22 14:53:52

标签: excel vba excel-vba copy-paste

我有以下代码将一张纸从一张纸复制并粘贴到另一张纸上:

 wb1.Worksheets("ws").Copy After:=wb2.Sheets(wb1.Sheets.Count)

我正在尝试仅粘贴值和格式,我将如何进行此操作?

此过程也需要更长的预期时间,可能是因为我正在复制的工作表包含一个包含大量数据的数据透视表。无论如何我可以加快速度吗?

感谢您的帮助!

2 个答案:

答案 0 :(得分:1)

在效率方面。复制&粘贴比将Rng2.Value设置为Rng1.Value然后使用.NumberFormat等使Rng2像Rng1一样慢。您必须先Worksheets.Add

Rng2.Value = Rng1.Value
Rng2.NumberFormat = Rng1.NumberFormat

你也想要字体等吗?

如果你想复制&粘贴,然后你可以做粘贴特殊值,然后粘贴特殊格式,但这会慢。

答案 1 :(得分:0)

如果你只是想要这些值,你可以通过设置两个等于彼此的范围来完全跳过复制/粘贴(并因此使用剪贴板):

=Range([copy TO range]).Value = Range([copy FROM range]).Value

但是您要同时添加工作表,因此添加一行创建空白工作表,然后执行

wb2.sheets([worksheet name]).Value = wb1.worksheets("ws").value