从一个工作表复制和粘贴到另一个工作表的宏程序(15种方法)

  • Share This
Hugh West

Table of contents

当我们处理多个Excel工作表时,有时我们必须将数据从一个电子表格复制到另一个。 实施 VBA 是在Excel中运行任何操作的最有效、最快速、最安全的方法。 在这篇文章中,我们将告诉你如何在 从一个工作表复制和粘贴数据到另一个工作表 在Excel中用 VBA宏 .

下载工作手册

你可以从这里下载免费的练习Excel工作簿。

从一个工作表复制和粘贴到另一个工作表.xlsm

在Excel中用VBA将数据从一个工作表复制粘贴到另一个工作表的15种方法

在本节中,你将学习15种方法,了解你如何能够 从一个工作表中复制数据并粘贴到另一个工作表中 VBA 在Excel中。

以上是本文将考虑的数据集,作为我们的例子。

1.嵌入VBA宏,从一个工作表复制和粘贴一个数据范围到另一个工作表

的步骤 用VBA将数据范围从一个工作表复制和粘贴到另一个工作表 下文介绍了这一点。

步骤。

  • 在开始时,按 Alt + F11 在你的键盘上,或进入标签 开发人员 -> Visual Basic 打开 Visual Basic编辑器 .

  • 在弹出的代码窗口中,从菜单栏中,点击 插入-> 模块 .

  • 现在。 复制以下代码 粘贴 它进入 代码窗口 .
 Sub CopyPasteToAnotherSheet() Worksheets("Dataset").Range("B2:F9").Copy Worksheets("CopyPaste") .Range("B2") End Sub 

你的代码现在可以运行了。

这段代码将 从B2复制到F9的范围 命名为 "床单"。 数据集 粘贴在B2的那些 范围在 复制粘贴 名单 .

  • 然后,按 F5 在你的键盘上选择"",或从菜单栏中选择 运行-> 运行Sub/UserForm 你也可以直接点击 小的播放图标 子菜单栏中的 "运行宏"。

请看下面的图片。

最后,所有的数据从 数据集 表现在被复制到了 复制粘贴 在我们的Excel工作簿中的表。

阅读更多。 Excel VBA:复制范围到另一个工作簿

2.在Excel中从一个活动工作表复制和粘贴数据的VBA宏程序

在上一节中,我们没有要求激活工作表。 但在本节中,我们将学习如何 在活动的工作表中复制和粘贴数据 .

步骤。

  • 与之前的方法一样,打开 Visual Basic编辑器 开发商 选项卡和 插入 a 模块 在代码窗口中。
  • 在代码窗口中。 复制以下代码 粘贴 它。
 Sub CopyPasteToAnotherActiveSheet() '从源表复制数据 Sheets("Dataset").Range("B2:F9").Copy '激活目标表 Sheets("Paste").Activate '选择目标范围 Range("B2").Select '粘贴在目标 ActiveSheet.Paste Application.CutCopyMode = False End Sub 

你的代码现在可以运行了。

  • 下一步。 运行 如上所示的代码,并在下面的图片中看到结果。

这一次,所有的数据从 数据集 表现在被复制到了 粘贴 我们在复制数据前激活的表。

阅读更多。 从一个单元格复制文本到另一个工作表的Excel公式

3.用VBA宏将单个单元格从Excel的一个工作表复制粘贴到另一个工作表上

在上述章节中,你已经学会了如何从一个工作表中复制和粘贴一系列的数据到另一个工作表中。 现在,你将看到如何 复制和粘贴时,你有 单一数据 在你的Excel电子表格中。

看看下面的图片, 范围 表只由一个值组成。

我们将看到我们如何能够 将此单元格复制并粘贴到另一个工作表中 在Excel中用 VBA .

步骤。

  • 如上所示,开放 Visual Basic编辑器 开发商 选项卡和 插入 a 模块 在代码窗口中。
  • 在代码窗口中。 复制以下代码 粘贴
 Sub CopyPasteSingleRangeToAnotherSheet() Worksheets("Range").Range("B4").Copy Worksheets("CopyRange").Range("B2") End Sub 

你的代码现在可以运行了。

  • 下一步。 运行 这段代码,并注意到以下图片。

这个单一的数据" 复制此单元格 "在 细胞B4 数据集 表现在被复制到了 复制范围 钣金在 细胞B2 .

阅读更多。 Excel VBA将仅有的值复制到目的地(宏、UDF和用户表格)。

4.用Excel宏中的PasteSpecial方法将复制的数据从一个工作表粘贴到另一个工作表上

你可以 从一个工作表中复制数据并粘贴那些 以各种方式与Excel的 粘贴专用 方法与 VBA 具体步骤如下。

步骤。

  • 首先,打开 Visual Basic编辑器 开发商 选项卡和 插入 a 模块 在代码窗口中。
  • 第二。 复制以下代码 粘贴 它进入代码窗口。
 Sub CopyPasteSpecial() Worksheets("Dataset").Range("B2:F9").Copy Worksheets("PasteSpecial").Range("B2").PasteSpecial End Sub 

你的代码现在可以运行了。

  • 下一步。 运转 这段代码。

请看上图,数据来自 数据集 表现在被转移到 粘贴专用 在Excel中的工作表。

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

5.在Excel中从一个工作表向另一个工作表复制和粘贴最后一个单元格下面的数据的宏程序

我们已经有一些数据在 数据集 现在,请看本节接下来的部分。 我们现在有一些新的数据在另一张名为 最后的细胞 .

我们在这里想做的是,我们将 复制特定数据(单元格B5至F9)。 数据集 钣金和 粘贴 那些在 最后一个单元格下面的 这的 最后的细胞 片。

步骤。

  • 首先,打开 Visual Basic编辑器 开发商 选项卡和 插入 a 模块 在代码窗口中。
  • 其次。 复制以下代码 粘贴 它进入代码窗口。
 Sub CopyPasteBelowTheLastCell() '设置变量 Dim wsSource As Worksheet Dim wsTarget As Worksheet Dim iSourceLastRow As Long Dim iTargetLastRow As Long '设置源表和目标表的变量 Set wsSource = Worksheets("Dataset") Set wsTarget = Worksheets("Last Cell") '根据B列的数据找到源表中最后使用的行 iSourceLastRow = wsSource.Cells(wsSource.Rows.Count,"iTargetLastRow = wsTarget.Cells(wsTarget.Rows.Count, "B").End(xlUp).Offset(1).Row '根据B列的数据找到目标表的第一个空白行 'Offset属性是将复制的数据向下移动1行 '从源头复制数据并粘贴到目的地 wsSource.Range("B5:F9" & iSourceLastRow) '复制 wsTarget.Range("B" & iTargetLastRow) End Sub 

你的代码现在可以运行了。

  • 下一步。 运行 请看下面的图片。

在这里,只有 的选定数据。 数据集 床单 现在是 复制到最后一个单元格下面的 最后的细胞 床单 在Excel中。

阅读更多。 在Excel中复制和粘贴数值的公式(5个例子)

6.先清除工作表然后复制粘贴到另一个工作表的VBA宏程序

如果你在现有的工作表中有错误的数据,你想提取其中的原始数据,怎么办?

请看以下图片,我们将 清空数据,从 清除范围 表,并在这里存储来自 数据集 使用VBA的工作表 代码。

步骤。

  • 首先,打开 Visual Basic编辑器 开发商 选项卡和 插入 a 模块 在代码窗口中。
  • 其次。 复制以下代码 粘贴 它进入代码窗口。
 Sub ClearAndCopyPasteData() '设置变量 Dim wsSource As Worksheet Dim wsTarget As Worksheet Dim iSourceLastRow As Long Dim iTargetLastRow As Long '设置源表和目标表的变量 Set wsSource = Worksheets("Dataset") Set wsTarget = Worksheets("Clear Range") '根据B列的数据找到源表中最后使用的行 iSourceLastRow = wsSource.Cells(wsSource.Rows.Count,"iTargetLastRow = wsTarget.Cells(wsTarget.Rows.Count, "B").End(xlUp).Offset(1).Row '根据B列的数据找到目标表的第一个空白行 'Offset属性是将复制的数据向下移动1行 '从目标范围清除数据 wsTarget.Range("B5:F9" & iTargetLastRow).ClearContents ' 从源数据复制并粘贴到目的地wsSource.Range("B5:F9" & iSourceLastRow).Copy wsTarget.Range("B5" ) End Sub 

你的代码现在可以运行了。

  • 下一步。 运行 请看下面的图片。

以前的数据在 清除范围 表现在被来自 数据集 片。

阅读更多。 根据标准将数据从一个工作簿复制到另一个工作簿的宏程序

7.使用Range.Copy功能从一个工作表复制和粘贴数据的宏程序

现在,我们将学习 VBA 的代码。 从一个工作表复制和粘贴数据到另一个工作表 范围.复制 在Excel中的函数。

步骤。

  • 首先,打开 Visual Basic编辑器 开发商 选项卡和 插入 a 模块 在代码窗口中。
  • 其次。 复制以下代码 粘贴 它进入代码窗口。
 Sub CopyWithRangeCopyFunction() '设置变量 Dim wsSource As Worksheet Dim wsTarget As Worksheet '设置源表和目标表的变量 Set wsSource = Worksheets("Dataset") Set wsTarget = Worksheets("Copy Range") '从源表复制数据并粘贴到目标表 Call wsSource.Range("B2:F9").Copy(wsTarget.Range("B2") End Sub 

你的代码现在可以运行了。

  • 下一步。 运行 这段代码,看看下面的图片。

我们已经成功地复制了来自 数据集 列表中的 复制范围 的表,与 范围.复制 功能。

阅读更多。 将单元格值复制到另一个单元格的Excel公式

类似读物

  • Excel VBA根据标准将行复制到另一个工作表的方法
  • 使用VBA在Excel中只粘贴无格式化的数值
  • 如何在Excel中只复制和粘贴可见的单元格(3种简单方法)
  • 复制和粘贴在Excel中不起作用(9个原因& 解决方案)
  • 如何在Excel中使用宏复制多行(4例)?

8.用USEDRANGE属性实现从一个工作表到另一个工作表的数据复制的宏程序代码

这一次,我们将学习 VBA 的代码。 从一个工作表复制和粘贴数据到另一个工作表 二手房 在Excel中的属性。

步骤。

  • 首先,打开 Visual Basic编辑器 开发商 选项卡和 插入 a 模块 在代码窗口中。
  • 第二。 复制以下代码 粘贴 它进入代码窗口。
 Sub CopyWithUsedRange() '设置变量 Dim wsSource As Worksheet Dim wsTarget As Worksheet '设置源表和目标表的变量 Set wsSource = Worksheets("Dataset") Set wsTarget = Worksheets("UsedRange") '从源表中复制数据并粘贴到目标表中 Call wsSource.UsedRange.Copy(wsTarget.Cells(2, 2) End Sub 

你的代码现在可以运行了。

  • 下一步。 运行 这段代码。

正如我们在上图中看到的,我们已经成功地复制和粘贴了来自 数据集 列表中的 二手房 的表,与 启用的范围 财产。

阅读更多。 如何在Excel的多个单元格中复制相同的值(4种方法)

9.在Excel中从一个工作表复制和粘贴所选数据的VBA宏程序

你可以 从一个工作表中只复制和粘贴一些选定的数据到另一个工作表中 VBA 做法如下所示。

步骤。

  • 首先,打开 Visual Basic编辑器 开发商 选项卡和 插入 a 模块 在代码窗口中。
  • 第二。 复制以下代码 粘贴 它进入代码窗口。
 Sub CopyPasteSelectedData() '设置变量 Dim wsSource As Worksheet Dim wsTarget As Worksheet '设置源表和目标表的变量 Set wsSource = Worksheets("Dataset") Set wsTarget = Worksheets("Paste Selected") '从源表复制数据 wsSource.Range("B4:F7").Copy '将数据粘贴到目标表 Call wsTarget.Range("B2").PasteSpecial(Paste:=xlPasteValues) End Sub 

你的代码现在可以运行了。

这个代码将 只复制从B4到F7的范围 数据集 钣金和 粘贴在B2的那些 范围在 粘贴选择 名单 .

  • 下一步。 运转 这个代码。

最后,只有被选中的数据来自 数据集 表被成功复制并粘贴到了 粘贴选择 在Excel工作簿中的工作表。

阅读更多。 如何在Excel中应用VBA PasteSpecial并保持源格式化

10.在第一行空白处将数据从一个工作表复制到另一个工作表的宏程序代码

在这里,我们将看到如何 复制数据 数据集 钣金和 粘贴 那些在 另一个工作表的第一个空白单元格 在Excel中用 VBA .

步骤。

  • 首先,打开 Visual Basic编辑器 开发商 选项卡和 插入 a 模块 在代码窗口中。
  • 第二。 复制以下代码 粘贴 它进入代码窗口。
 Sub FirstBlankCell() Range("B2:F9", Range("B" & Rows.Count).End(xlUp)).Copy Sheet13.Range("A65536") .End(xlUp) End Sub 

你的代码现在可以运行了。

  • 下一步。 运行 这一大块代码。

在上面的图片中看到。 13张 结果是,执行的代码将复制的数据从 "我的 "中粘贴出来。 数据集 在非常 第一单元 13张 在Excel中的工作表。

阅读更多。 用Excel VBA复制和粘贴数值到下一个空行(3个例子)。

11.嵌入VBA,将自动过滤的数据从一个Excel工作表复制和粘贴到另一个工作表

我们可以 过滤源数据集,并在另一个工作表中只复制和粘贴过滤后的数据。 请跟随本文学习如何在Excel中一步步实现这一目标。 VBA .

步骤。

  • 首先,打开 Visual Basic编辑器 开发商 选项卡和 插入 a 模块 在代码窗口中。
  • 第二。 复制以下代码 粘贴 它进入代码窗口。
 Option Explicit Sub AutoFilter() Range("B4:B101").AutoFilter 1, "Dean" Range("B4:F9").Copy Sheet17.Range("B" & Rows.Count).End(xlUp)(2) Range("B4").AutoFilter End Sub 

你的代码现在可以运行了。

  • 下一步。 运行 这段代码。 只有那些有""的行 邓小平 中的",将被过滤并复制到另一个工作表中。

注意在上面的图片中,只有过滤后的数据" 邓小平 "从 B柱 现在被复制并粘贴到了 15张 片。

阅读更多。 如何在Excel中使用VBA进行复制和粘贴(7种方法)

类似读物

  • 如何用Excel VBA自动过滤和复制可见的行
  • 在Excel中复制独特的数值到另一个工作表(5种方法)
  • 如何在Excel中复制合并和过滤的单元格(4种方法)
  • 运行时错误1004:Range类的PasteSpecial方法失败了
  • 如何在Excel中粘贴链接和转置(8种快速方法)

12.在一个范围的底部粘贴一个行,同时保留上面范围中复制的公式

当你想 复制一个值并保留其中的公式 同时将其粘贴到另一行,然后用 VBA 代码,你可以轻松地执行任务。

步骤。

  • 首先,打开 Visual Basic编辑器 开发商 选项卡和 插入 a 模块 在代码窗口中。
  • 第二。 复制以下代码 粘贴 它进入代码窗口。
 Sub PasteRowWithFormulaFromAbove() Rows(Range("B" & Rows.Count).End(xlUp).Row).Copy Rows(Range("B" & Rows.Count).End(xlUp).Row + 1).Insert xlDown End Sub 

你的代码现在可以运行了。

  • 下一步。 运行 这个代码,看看下面的图片。

ǞǞǞ 最后一行按原样复制 在它旁边的一行中。

阅读更多。 如何在Excel中自动将数据从一个单元格复制到另一个单元格

13.用VBA将数据从一个工作表复制到另一个打开但未保存的工作簿中的另一个工作表上

注意我们的示例工作簿的名称。 来源工作手册 我们将把数据从 数据集 工作簿中的工作表,并将其粘贴到另一个工作簿中的另一个工作表,名为 目的地工作手册 就是说 打开但尚未保存 .

步骤。

  • 首先,打开 Visual Basic编辑器 开发商 选项卡和 插入 a 模块 在代码窗口中。
  • 第二。 复制以下代码 粘贴 它进入代码窗口。
 Sub CopyOneFromAnotherNotSaved() Workbooks("Source Workbook").Worksheets("Dataset").Range("B2:F9").Copy Workbooks("Destination Workbook").Worksheets("Sheet1").Range("B2") End Sub 

你的代码现在可以运行了。

  • 下一步。 运行 这个代码。

数据来自 数据集 列表中的 来源工作手册 现在被复制到了 第1张 列表中的 目的地工作手册 .

阅读更多。 Excel VBA:复制单元格值并粘贴到另一单元格

14.将一个工作表的数据复制到另一个打开并保存的工作簿中的另一个工作表的宏程序

这一次,我们将 拷贝数据 数据集 的表。 来源工作手册 粘贴 它进入 第二张 中的工作表。 目的地工作手册 .但现在, 工作簿已打开并保存 .

步骤。

  • 首先,打开 Visual Basic编辑器 开发商 选项卡和 插入 a 模块 在代码窗口中。
  • 第二。 复制以下代码 粘贴 它进入代码窗口。
 Sub CopyOneFromAnotherSaved() Workbooks("Source Workbook.xlsm").Worksheets("Dataset").Range("B2:F9").Copy _ Workbooks("Destination Workbook.xlsx") .Worksheets("Sheet2") .Range("B2") End Sub 

你的代码现在可以运行了。

  • 下一步。 运行 这个代码。

数据来自 数据集 列表中的 来源工作手册 现在被复制到了 第二张 列表中的 目的地工作手册 再看看这个名字,这个 工作簿被保存 这一次。

阅读更多。 如何在不改变格式的情况下在Excel中复制和粘贴

15.应用VBA将数据从一个工作表复制和粘贴到另一个封闭工作簿的另一个工作表上

在前两节中,我们学习了如何将数据从一个工作表复制和粘贴到另一个打开的工作簿中。 在这一节中,我们将学习如何将代码 工作簿关闭时复制和粘贴数据 .

步骤。

  • 首先,打开 Visual Basic编辑器 开发商 选项卡和 插入 a 模块 在代码窗口中。
  • 第二。 复制以下代码 粘贴 它进入代码窗口。
 Sub CopyOneFromAnotherClosed() '要打开保存在你系统中的工作簿 '根据你的文件在系统中的位置改变下面的路径 Workbooks.Open "D:\ExcelWIKI\Excel Folder\Destination Workbook.xlsx" '从名为Source Workbook的工作簿中复制数据,'将其粘贴到名为Destination Workbook的目标工作簿中 Workbooks("SourceWorkbook").Worksheets("Dataset").Range("B2:F9").Copy Workbooks("Destination Workbook").Worksheets("Sheet3").Range("B2") '保存后关闭目标工作簿 Workbooks("Destination Workbook").Close SaveChanges:=True End Sub 

你的代码现在可以运行了。

  • 下一步。 运行 这个代码。

尽管这次工作簿被关闭了,但在代码执行后,数据还是从 数据集 列表中的 来源工作手册 现在被复制到了 第三张 列表中的 目的地工作手册 .

阅读更多。 Excel VBA从另一个工作簿中复制数据而不打开

需要记住的事情

  • 方法1至14要求你的工作簿被打开 在执行这些方法中显示的宏代码时,不要忘记同时打开源工作簿和目标工作簿。
  • 虽然你的 保存工作簿,然后写上文件名和文件类型 当代码中的 工作簿不被保存,那么只写文件名 不包括文件的类型。 例如,如果你的 工作簿被保存 ,然后写上" 目的地。 xlsx ",但如果 工作簿未被保存 ,然后写上" 目的地 "的代码内。

总结

这篇文章告诉你如何 从一个工作表复制和粘贴数据到另一个工作表 在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.