使用PasteSpecial时无法复制格式

时间:2019-01-25 11:47:05

标签: excel vba

我有一个包含许多条件格式设置规则的Excel工作表。当我对另一张纸执行PasteSpecial时,所有格式都消失了。 这是为什么? 不幸的是,我需要遵守所有规则。

我尝试使用xlPasteFormats,xlPasteAll等,但随后Excel冻结并挂起。

Sheets("Data").Activate
Range("A1:H12").Select
Selection.Copy
Sheets("Output").Activate
Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False

2 个答案:

答案 0 :(得分:3)

您可以进行常规复制/粘贴

或PasteSpecial中的参数:

Paste:=xlPasteAllMergingConditionalFormats

如果您进行SO搜索,则会发现一些有关为什么应避免使用SelectActivate的信息。使用常规的复制/粘贴操作,您的宏可以重写为单行格式:

Sheets("Data").Range("A1:H12").Copy Sheets("Output").Range("A1")

答案 1 :(得分:0)

感谢您的回答,并看着我的问题。

我最终使用

粘贴:= xlPasteValues

粘贴:= xlPasteFormats

这将格式复制过来。

一切都这么慢的原因是,其中一张纸有很多重复的条件格式设置规则。 我只使用两个条件格式设置规则删除并重新创建了工作表,操作起来很快。