xlPasteValues和xlPasteFormats同时在VBA上

时间:2017-05-24 09:26:09

标签: excel vba excel-vba copy-paste paste

我正在复制一个范围,然后将其值和格式粘贴到另一个范围,如下所示:

 ws5.Range("F3:N" & xCell).SpecialCells(xlCellTypeVisible).Copy

 ws16.Cells(Rows.Count, "B").End(xlUp).Offset(4, 0).PasteSpecial xlPasteValues
 ws16.Cells(Rows.Count, "B").End(xlUp).Offset(4, 0).PasteSpecial xlPasteFormats

我的问题是,是否可以在不使用With的情况下在一个操作中执行这两个粘贴操作?我想提高宏的速度,这种小的缩减可能对我有所帮助。

也许有一些我不知道的.PasteSpecial xlPasteValues and xlPasteFormats类解决方案。 当我在寻找这个问题的解决方案时,I found that link but the only answer provided here is using With, which is useless for me.

4 个答案:

答案 0 :(得分:0)

您正在寻找:

xlPasteValuesAndNumberFormats

编辑##这不是正确答案。

答案 1 :(得分:0)

xlPasteAll

(实际上,由于xlPasteAll是默认的粘贴选项,因此您可以将其关闭。)

来源:https://msdn.microsoft.com/en-us/library/aa195818(v=office.11).aspx

答案 2 :(得分:0)

您可以通过以下方式使用它:

NewSheet.Range("A1").PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
NewSheet.Range("A1").PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:=xlNone, SkipBlanks:=False, Transpose:=False

将两个命令一个接一个地放置。首先,必须全部粘贴,然后再次粘贴,但只能粘贴值和数字格式。

答案 3 :(得分:-2)

您可以多次粘贴内容以获得所需的内容,例如

Cells(1, 1).PasteSpecial Paste:=xlPasteAll
Cells(1, 1).PasteSpecial Paste:=xlPasteValues