Vba:如何将范围复制到另一张纸


您可以在 VBA 中使用以下语法将一系列单元格复制到另一个工作表:

 Sub CopyRangeToSheet()

Worksheets(" Sheet1 ").Range(" A1:C11 ").Copy
Worksheets(" Sheet2 ").Range(" A1 ").PasteSpecial

Application.CutCopyMode = False

End Sub

此特定宏将复制Sheet1A1:C11区域中的单元格,并将它们粘贴到Sheet2的单元格A1开始的区域中。

注意Application.CutCopyMode = False行指定在执行宏后应禁用剪切和复制模式。

以下示例展示了如何在实践中使用此语法。

示例:使用 VBA 将范围复制到另一张工作表

假设我们在 Excel 中名为Sheet1 的工作表中有以下数据集,其中包含有关各个篮球运动员的信息:

假设我们还有另一个名为Sheet2 的工作表,当前为空:

假设我们要从Sheet1复制A1:C11范围内的所有值并将它们粘贴到Sheet2的单元格A1中。

我们可以创建以下宏来执行此操作:

 Sub CopyRangeToSheet()

Worksheets(" Sheet1 ").Range(" A1:C11 ").Copy
Worksheets(" Sheet2 ").Range(" A1 ").PasteSpecial

Application.CutCopyMode = False

End Sub

当我们运行这个宏时,我们在Sheet2中收到以下输出:

请注意, Sheet1A1:C11范围内的所有值都从单元格A1复制到Sheet2中。

默认情况下,值以其源格式粘贴。

例如,标题行值是粗体。

如果只想粘贴值而不带源格式,可以指定Paste:=xlPasteValues,如下所示:

 Sub CopyRangeToSheet()

Worksheets(" Sheet1 ").Range(" A1:C11 ").Copy
Worksheets(" Sheet2 ").Range(" A1 ").PasteSpecial Paste=xlPasteValues

Application.CutCopyMode = False

End Sub

当我们运行这个宏时,我们在Sheet2中收到以下输出:

请注意,只有Sheet1A1:C11范围内的值(未格式化)被复制到Sheet2中。

注意:您可以在此处找到 VBA PasteSpecial方法的完整文档。

其他资源

以下教程说明如何在 VBA 中执行其他常见任务:

VBA:如何仅粘贴值而不格式化
VBA:如何将可见线复制到另一张纸
VBA:根据条件将行复制到另一张纸

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注