VBA入门必须 如何复制粘贴单元格区域
本技巧的目的:掌握复制,粘贴的各种方法。
1. 代码助手
代码助手下载地址 http://excel880.com/blog/archives/11297
输入中文:选择性 + 空格,即可以实现弹出代码,快速输入代码的目的。也可以自己收录自己所需代码,方便下次快速调用。
2. 复制单元格区域到另外一个区域
指定区域复制到另外一个区域:
代码如下:
Sub 单元格复制()
Application.DisplayAlerts = False '关闭提示对话框
Sheet8.Range("A1").CurrentRegion.Copy Sheet8.[I1] '复制, 粘贴
Application.DisplayAlerts = True '打开提示对话框
End Sub
注释:
★★★ 注意: 关闭提示对话框后一定要在最后打开提示对话框,否则以后所有EXCEL中进行的操作都不会弹出提示对话框!!!
将 A1 开始的连续区域 复制到 I1 开始的位置
运行后:
复制完成
3. 选择性粘贴
录制宏的方法:
1) 开发工具-录制宏
2) 复制后,选择性粘贴
3)选择:值和数字格式
4)停止录制宏
5)查看代码:
修改代码为:
选择性粘贴参数:
以下参数均为可选是否输入项
Paste:
xlPasteAll :粘贴全部内容。
xlPasteAllExceptBorders:粘贴除边框外的全部内容。
xlPasteColumnWidths:粘贴复制的列宽。
xlPasteComments:粘贴批注。
xlPasteFormats:粘贴复制格式。
xlPasteFormulas:粘贴公式。
xlPasteFormulasAndNumberFormats:粘贴公式和数字格式。
xlPasteValidation:粘贴有效性验证公式。
xlPasteValues:粘贴值。
xlPasteValuesAndNumberFormats :粘贴值和数字格式。
Operation:
xlPasteSpecialOperationAdd: 复制的数据与目标单元格中的值 相加。
如:D3 开始区域复制 到 H3 开始区域中, D3 开始的区域 与 H3 区域的值 相加
选择性粘贴 选择 相加项 后结果:
xlPasteSpecialOperationDivide: 复制的数据 除以 目标单元格中的值。
xlPasteSpecialOperationMultiply: 复制的数据 乘以 目标单元格中的值。
xlPasteSpecialOperationNone: 粘贴操作中不执行任何计算。
xlPasteSpecialOperationSubtract: 复制的数据 减去 目标单元格中的值。
SkipBlanks 是否将剪贴板上区域中的空白单元格粘贴到目标区域中 True:不粘贴 默认值为 False:粘贴
Transpose 是否转置行和列 True:转置 默认值为 False:不转置
运行以下公式:
复制区域改成动态区域
Dim n
Dim sht As Worksheet
Set sht = Sheet8 '设置变量: sheet8 工作表
n = sht.Range("a" & Rows.Count).End(xlUp).Row '最大行
sht.Range("A2:F" & n).Copy
'复制区域 本段为动态区域, 根据最大行的变化会自动变更区域
sht.Range("J2").PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _
xlNone, SkipBlanks:=False, Transpose:=False '选择性粘贴: 值和数字格式
sht.Range("J2").PasteSpecial Paste:=xlPasteColumnWidths, Operation:= _
xlNone, SkipBlanks:=False, Transpose:=False '选择性粘贴: 列宽
Application.CutCopyMode = False '取消复制虚线框
运行后:
修改成:选择性粘贴格式后,结果如下:
选择性粘贴的每个参数会有不同的结果,都可以逐一测试一下。