选择性粘贴是电子表格,通过如下的方法,你可以实现用VBA来操作选择性粘贴的功能。
一、语法
PasteSpecial 方法
解释:将剪贴板中的 Range 对象粘贴到指定区域中。
语法:expression.PasteSpecial(Paste, Operation, SkipBlanks, Transpose)
expression 必需。该表达式返回一个 Range 对象。
Paste XlPasteType 类型,可选。指定要粘贴的区域部分。
XlPasteType 可为以下 XlPasteType 常量之一。 ]
xlPasteAll 默认值 '全部
xlPasteAllExceptBorders ’边框除外
xlPasteColumnWidths ’列宽
xlPasteComments ’批注
xlPasteFormats ‘格式
xlPasteFormulas ’公式
xlPasteFormulasAndNumberFormats ‘公式和数字格式
xlPasteValidation ’有效性验证
xlPasteValues ‘数值
xlPasteValuesAndNumberFormats ’值和数字格式
Operation XlPasteSpecialOperation 类型,可选。指定粘贴操作。
XlPasteSpecialOperation 可为以下 XlPasteSpecialOperation 常量之一。
xlPasteSpecialOperationAdd ‘加
xlPasteSpecialOperationDivide ’除
xlPasteSpecialOperationMultiply ‘乘
xlPasteSpecialOperationNone 默认值 ‘无
xlPasteSpecialOperationSubtract ‘减
SkipBlanks Variant 类型,可选。若为 True,则不将剪贴板上区域中的空白单元格粘贴到目标区域中。默认值为 False。
Transpose Variant 类型,可选。若为 True,则粘贴区域时转置行和列。默认值为 False。
二、使用示例
Sub 第一个例子() '将B2单元格的公式复制,并选择性粘贴到A2单元格
Range("B2").Copy
Range("A2").PasteSpecial Paste:=xlPasteValues
End Sub
Sub 第二个代码例子() '将C4单元格的值与e2:E4单元格的和粘贴到E2:E4
Range("C4").Copy
Range("E2:E4").PasteSpecial Paste:=xlPasteValues, Operation:=xlAdd
End Sub
Sub第三个例子() '将A2:A6单元格的内容转置粘贴到以D8开始的单元格区域
Range("A2:B6").Copy
Range("D8").PasteSpecial Transpose:=True
End Sub
再来一个例子。下面的例子功能是:123页的内容拷贝到456页
Sub MYtest()
Dim I, arr
Sheets("123").Select
I = Range("I65536").End(xlUp).Row
arr = Range("a3:Ao" & I)
Sheets("456").Select
Range("a3").Resize(UBound(arr), UBound(arr, 2)) = arr
End Sub