VBA特殊粘贴|使用VBA PasteSpecial函数的5种方式?

与工作表类似,当我们复制数据并将其粘贴到不同的单元格区域时,我们有一个粘贴特殊方法,该方法使我们可以将数据粘贴为本身或仅粘贴公式或仅粘贴值,并且可以使用以下方式在VBA中使用粘贴特殊:范围属性方法如下范围。粘贴special()以在括号中提供我们想要的类型。

VBA中的特殊粘贴

excel中的选择性粘贴在我们的日常工作中有很多作用。使用特殊粘贴功能,我们可以做的比平常更多。复制和粘贴在计算机世界中无处不在。但是粘贴特殊是excel中的高级功能。

像VBA中的常规excel粘贴特殊功能一样,我们也有粘贴特殊方法来粘贴复制的数据。对于excel用户而言,在excel中复制内容并不是一件奇怪的事情,他们会复制,粘贴,并且在大多数情况下,他们会使用特殊粘贴功能以多种方式实现其目的。

在常规的excel粘贴中,包括许多选项,例如仅粘贴值,粘贴公式,粘贴格式等。

特殊粘贴必须 粘贴,操作,跳过空白和转置 在VBA中也是如此,我们拥有所有的参数 特殊粘贴 方法。

VBA中的特殊粘贴公式

以下是VBA中特殊粘贴的公式

VBA Range对象提供“选择性粘贴”功能,因为复制数据后,我们将其粘贴到单元格区域中,因此“特殊粘贴”方法可用于 范围 目的。

粘贴类型: 复制数据后,如何粘贴。是否要粘贴值,公式,格式,验证等。下面是下面可用选项的完整列表。 粘贴类型。

粘贴特殊操作: 粘贴时,您想执行任何类型的操作,例如加,减,除,乘或无。

  • [跳过空白]: 如果要跳过空格,则可以选择TRUE或FALSE。
  • [移调]: 如果要转置数据,则可以选择TRUE或FALSE。

Excel VBA中的特殊粘贴示例

以下是VBA中特殊粘贴的示例。

您可以在此处下载此VBA粘贴特殊模板– VBA粘贴特殊模板

示例#1 –使用VBA PasteSpecial函数仅粘贴值

在第一个示例中,我们将使用paste special来仅粘贴值。假设下面是工作表名称中具有“销售数据”的数据。

现在,我们将使用几种粘贴特殊方法执行复制和粘贴任务。请遵循以下步骤。

步骤1: 首先创建一个宏名称。

第2步: 首先,从工作表名称“销售数据”中复制范围A1至D14。要复制范围,请使用以下代码。

代码:

范围(“ A1:D14”)。复制

第三步: 复制数据后,我们将把值从G1粘贴到J14。首先参考范围。

代码:

范围(“ G1:J14”)

第4步: 选择范围后,我们需要粘贴。因此,请放置一个点(。),然后选择“选择性粘贴”方法。

代码:

 Sub PasteSpecial_Example1()Range(“ A1:D14”)。Copy Range(“ G1:J14”)。PasteSpecial End Sub 

步骤5: 从下拉列表中选择选项 “ xlPasteValues”。

代码:

 Sub PasteSpecial_Example1()Range(“ A1:D14”)。Copy Range(“ G1:J14”)。PasteSpecial xlPasteValues End Sub 

步骤6: 现在,使用F5键或手动运行此代码,看看会发生什么。

因此,我们的代码将数据从A1复制到D14,并从G1粘贴到J14作为值。

它已经在工作表中执行了快捷键excel键的任务 ALT + E + S + V.

示例2 –使用VBA全部粘贴PasteSpecial

现在,我们将看到如果执行xlPasteAll任务会发生什么。

代码:

 Sub PasteSpecial_Example2()Range(“ A1:D14”)。Copy Range(“ G1:J14”)。PasteSpecial xlPasteAll End Sub 

现在,如果您通过运行选项或按F5键手动运行此代码,我们将获得数据。

Example#3 –使用VBA PasteSpecial函数的粘贴格式

现在,我们将看到如何仅粘贴格式。以下代码将为我们完成这项工作。

代码:

 Sub PasteSpecial_Example3()Range(“ A1:D14”)。Copy Range(“ G1:J14”)。PasteSpecial xlPasteFormats结束Sub 

如果您使用F5键或手动运行此代码,我们将仅获得复制范围的唯一格式。

示例#4 –使用VBA选择性粘贴粘贴列宽

现在,我们将看到如何仅粘贴复制范围内的列宽。为此,我增加了我的数据列之一的列宽。

应用下面的代码,它将仅粘贴复制范围的列宽。

代码:

 Sub PasteSpecial_Example3()Range(“ A1:D14”)。Copy Range(“ G1:J14”)。PasteSpecial xlPasteColumnWidths End Sub 

运行此代码,然后查看列宽的差异。

现在,我们可以看到Sales列宽已增加到复制范围列的列宽。

Example#5 –使用VBA粘贴特殊选项将数据从一张纸复制到另一张纸

我们已经看到了如何将数据复制并粘贴到同一张纸上。现在我们将如何从一张纸粘贴到另一张纸。

步骤1: 在选择范围之前,我们需要告诉我们要从哪张纸中选择数据。

代码:

 Sub PasteSpecial_Example5()工作表(“销售数据”)结束 

第2步: 在按名称选择工作表之后,我们需要在该工作表中选择范围。复制它。

代码:

 Sub PasteSpecial_Example5()工作表(“销售数据”)。范围(“ A1:D14”)。复制结束 

上面的代码在工作表名称“ Sales Data”中说,复制范围(“ A1:D14”)

第三步: 由于我们将其粘贴到其他工作表中,因此需要按其名称选择工作表。

代码:

 Sub PasteSpecial_Example5()工作表(“销售数据”)。范围(“ A1:D14”)。复制工作表(“月工作表”) 

第4步: 现在,在“月份表”工作表中选择范围。

代码:

 Sub PasteSpecial_Example5()工作表(“销售数据”).Range(“ A1:D14”)。Copy Worksheets(“ Month Sheet”)。Range(“ A1:D14”)End Sub 

步骤5: 使用选择性粘贴,我们将粘贴值和格式。

代码:

 Sub PasteSpecial_Example5()工作表(“销售数据”).Range(“ A1:D14”)。Copy工作表(“月度表”).Range(“ A1:D14”)。PasteSpecial xlPasteValuesAndNumberFormats End Sub 

步骤6: 我们不仅使用VBA Paste Special粘贴值和格式,而且还将其粘贴为TRANSPOSE。

代码:

 Sub PasteSpecial_Example5()工作表(“销售数据”).Range(“ A1:D14”)。Copy工作表(“月度表”).Range(“ A1:D14”)。PasteSpecial xlPasteValuesAndNumberFormats,转置:= True End Sub 

现在运行此代码,它将复制数据并将其转置到“月表”。

关于Excel VBA PasteSpecial函数的注意事项

  • 如果要跳过空格,则默认情况下需要将参数输入为TRUE,否则为FALSE。
  • 如果要转置数据,我们需要将转置选择为TRUE。
  • 我们一次只能执行一种特殊的粘贴。