Vba:如何将范围复制到另一张纸
您可以在 VBA 中使用以下语法将一系列单元格复制到另一个工作表:
Sub CopyRangeToSheet()
Worksheets(" Sheet1 ").Range(" A1:C11 ").Copy
Worksheets(" Sheet2 ").Range(" A1 ").PasteSpecial
Application.CutCopyMode = False
End Sub
此特定宏将复制Sheet1的A1: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中收到以下输出:
请注意, Sheet1中A1: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中收到以下输出:
请注意,只有Sheet1的A1:C11范围内的值(未格式化)被复制到Sheet2中。
注意:您可以在此处找到 VBA PasteSpecial方法的完整文档。
其他资源
以下教程说明如何在 VBA 中执行其他常见任务: