VBA从一个工作簿复制到另一个工作簿(仅限于数值和格式)

我有以下代码复制并粘贴从一个工作表到另一个工作表:

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

我试图只粘贴值和格式,我将如何去做这个?

此外,该过程需要更长的时间,可能是因为我从中复制的工作表包含具有大量数据的数据透视表。 无论如何,我可以加快速度吗?

谢谢您的帮助!

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

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

你想要字体等吗?

如果你想做复制和粘贴,那么你可以做粘贴特殊值,然后粘贴特殊格式,但会更慢。

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

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

但是您同时添加工作表,所以添加一行创build空白工作表,然后执行

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