如何在Excel中应用VBA PasteSpecial并保持源格式化

  • Share This
Hugh West

然而,在有些情况下,我们想复制的不仅仅是简单的文本。 我们可以复制其中所有的功能,如条件格式化、数据的验证、数据类型格式化,以及边框和单元格颜色等美学特征。 也许你很欣赏你同事的配色方案,但需要静态数据,或者公式非常棒,但你不喜欢这种配色。在本教程中,我们将展示 VBA PasteSpecial并保持Excel中的源格式。

下载实践工作手册

下载这本练习手册,在阅读本文时进行练习。

VBA PasteSpecial.xlsm

在Excel中应用VBA PasteSpecial和保留源格式的4个简单例子

我们将演示四个例子,说明如何在下列程序中使用粘贴特技 VBA 下面是一个我们将用来复制和粘贴的样本数据集。

1.通过使用VBA PasteSpecial和保持Excel中的源格式化来添加输入框

首先,我们将使用方框选择一个范围,然后将其粘贴到另一个单元格中。 要做到这一点,请遵循以下步骤。

步骤1。

  • 首先,按 符号 + F11 来启动一个 宏观 .
  • 然后,点击 插入。 选择 模块 选择。

第2步。

  • 粘贴以下VBA代码。
 Sub PasteSpecialKeepFormat() '声明CopyCell和PasteCell为范围变量 Dim CopyCell As Range, PasteCell As Range '给输入框起个名字 xTitleId = "ExcelWIKI" '设置复制范围将从工作表中选择 Set CopyCell = Application.Selection '设置一个输入框,取一个范围来复制 Set CopyCell = Application.InputBox("选择范围来复制:", xTitleId, CopyCell.Address。Type:=8) '设置一个输入框,取一个要粘贴的单元格 Set PasteCell = Application.InputBox("Paste to any blank cell:", xTitleId, Type:=8) '命令复制选定的单元格 CopyCell.Copy '命令粘贴单元格 PasteCell.Parent.Activate '命令对粘贴的单元格保持源格式 PasteCell.PasteSpecial xlPasteValuesAndNumberFormats PasteCell.PasteSpecial xlPasteFormatsApplication.CutCopyMode = False End Sub 

第3步。

  • 拯救 节目,并按 F5 来运行它。
  • 在出现了 'ExcelWIKI' 框,选择范围 $B$4:$C$11 .
  • 点击 认可 .

第4步。

  • 选择任何空白单元格进行粘贴。
  • 然后,点击 好的。

  • 因此,你将通过保持格式不变来获得粘贴值。

阅读更多。 Excel中粘贴和特殊粘贴的区别

2.应用VBA的PasteSpecial来选择范围并保持Excel中的源格式化

VBA 你也可以指定范围,并在保持源格式的情况下复制和粘贴它们。 按照下面概述的步骤来做。

步骤1。

  • 新闻 符号 + F11 打开 宏观 .
  • 创建一个新的模块,从 插入
  • 简单地说,粘贴以下内容 VBA 范围的代码 B4:C11 .
 Sub pasteSpecial_KeepFormat() '选择要复制的单元格 Range("B4:C11").Copy '选择要粘贴的单元格 '命令粘贴Special保持格式 Range("E4").PasteSpecial xlPasteAllUsingSourceTheme End Sub 

第2步。

  • 最后,保存程序并按 F5 因此,你将看到如下图所示的变化。

阅读更多:VBA粘贴特技在Excel中复制数值和格式(9例)。

类似读物

  • 比较两个Excel表并复制差异的VBA代码
  • Excel VBA:复制单元格值并粘贴到另一个单元格
  • 如何在Excel中复制多个单元格到另一个工作表(9种方法)
  • Excel VBA:复制范围到另一个工作簿
  • [固定]:Excel中右键复制和粘贴不起作用(11种解决方案)

3.通过应用VBA的PasteSpecial和保持Excel中的源格式化来声明变量

通过声明变量和设置变量到不同的范围,按照下面的步骤,将Special粘贴在 VBA .

步骤1。

  • 首先,按 符号 + F11 打开 VBA宏程序 .
  • 选择一个新的 模块 .
  • 然后,粘贴以下内容 VBA代码 .
 Sub Copy_Paste_Special() '声明变量 Dim copy_Rng As Range, Paste_Range As Range '命令复制范围 Set copy_Rng = Range("B4:C11") '命令粘贴范围 Set Paste_Range = Range("E4") copy_Rng.Copy '粘贴命令到 pasteSpecial 与保持格式 Paste_Range.PasteSpecial Paste:=xlPasteAllUsingSourceTheme End Sub 

第2步。

  • 保存程序后,按 F5 来运行。
  • 因此,你复制的范围将在保持源格式的前提下被粘贴。

阅读更多。 如何在Excel中使用VBA PasteSpecial的公式和格式(3种方法)

4.使用VBA PasteSpecial并在Excel的不同工作表中保留源格式

我们将在这一部分谈论一个非常重要的方法。 因为我们将通过如何使用PasteSpecial在 VBA 例如,我们将在多个工作簿中复制来自 'Sheet4' 并将其粘贴到 '张5 ,'如以下步骤所示。

步骤1。

  • 打开 VBA宏程序 ,按 符号 + F11
  • 插入 选项卡,选择 模块。
  • 然后,粘贴以下内容 VBA。
 Private Sub KeepSourceFormat() Application.ScreenUpdating = False '声明变量 Dim copyRng As Worksheet Dim pasteRng As Worksheet '为变量设置范围目标 Set copyRng = Worksheets("Sheet4") Set pasteRng = Worksheets("Sheet5") '设置粘贴单元格的目标' 对于单元格E4,Rows.count = 5, Offset = 3 Set Destination = pasteRng.Cells(Rows.Count, 5).End(xlUp).Offset(3, 0)CopyRng.Range("B4:C11").Copy 'Command to paste range Destination.PasteSpecial Paste:=xlPasteValues Destination.PasteSpecial Paste:=xlPasteFormats Application.CutCopyMode = False Application.ScreenUpdating = True End Sub 

第2步。

  • 要运行该程序,请按 F5 保存程序后。
  • 因此,你将得到在 第5张 与保持源格式。

阅读更多。 如何在Excel中使用粘贴特殊命令(5种合适的方法)

总结

综上所述,我希望你现在知道如何使用 Excel VBA 到粘贴特殊保持源格式。 所有这些策略都应该教给你的数据并用于它。 检查练习册并应用你所学到的东西。 因为有你的重要支持,我们才有动力继续做这样的讲座。

如果您有任何问题,请不要犹豫,与我们联系。 请在下面的评论框中分享您的想法。

您的问题将由以下人员尽快解答 优秀 工作人员。

留在我们身边,继续学习。

Hugh West is a highly experienced Excel trainer and analyst with over 10 years of experience in the industry. He holds a Bachelor's degree in Accounting and Finance and a Master's degree in Business Administration. Hugh has a passion for teaching and has developed a unique teaching approach that is easy to follow and understand. His expert knowledge of Excel has helped thousands of students and professionals worldwide improve their skills and excel in their careers. Through his blog, Hugh shares his knowledge with the world, offering free Excel tutorials and online training to help individuals and businesses reach their full potential.