ExcelVBA | 007-复制单元格区域 选择性粘贴

技巧

使用选择性粘贴代码时,录制一段看代码,无须完全背下来。

动图演示

图片[1]-ExcelVBA | 007-复制单元格区域 选择性粘贴-习听风雨

代码区域

Sub 复制单元格区域1()
    Application.DisplayAlerts = False '关闭屏幕对话框,最后一定再设置为打开状态
    Sheet8.[A1:F14].Copy Destination:=Sheet10.Range("a1")
    'Destination后面的区域可以只写左上角单元格位置,
    Application.DisplayAlerts = True '开启屏幕对话框
End Sub
Sub 复制单元格区域2()
    Application.DisplayAlerts = False '关闭屏幕对话框,最后一定再设置为打开状态
    Sheet8.Range("A1").CurrentRegion.Copy Destination:=Sheet10.Range("a1")
    'CurrentRegion这个是自动选择当前区域
    Application.DisplayAlerts = True '开启屏幕对话框
End Sub
Sub 选择性粘贴宏录制()
    Range("A1:F14").Select
    Range("D11").Activate
    Selection.Copy
    Sheets("复制单元格区域").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Columns("A:F").Select
    Application.CutCopyMode = False
    Selection.Delete Shift:=xlToLeft
    Range("A1").Select
    Sheets("FindNext").Select
    Selection.Copy
    Sheets("复制单元格区域").Select
    Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
        False, Transpose:=False
End Sub
Sub 选择性粘贴代码()
    Sheet8.Range("A1:F14").Copy '从录制宏简化来的复制代码
    Sheet10.[A1].PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
        False, Transpose:=False
    '改造后的选择性粘贴代码(全部粘贴)
    Sheet10.[A1].PasteSpecial Paste:=xlPasteColumnWidths, Operation:=xlNone, SkipBlanks:= _
        False, Transpose:=False
    '粘贴列宽:此句复制上面一句,只需改变Paste参数就可以达到粘贴列宽的目的
    Application.CutCopyMode = False '取消复制虚线框
    End Sub

选择性粘贴方法 Range.PasteSpecial

[mark_a]将 Range 从剪贴板粘贴到指定的区域中。
语法

表达式.PasteSpecial(Paste, Operation, SkipBlanks, Transpose)

表达式 一个代表 Range 对象的变量。

[/mark_a]

图片[2]-ExcelVBA | 007-复制单元格区域 选择性粘贴-习听风雨

上面的参数无须死背,需要哪个功能,录制一下看宏代码即可,

选择性粘贴功能如下▼

图片[3]-ExcelVBA | 007-复制单元格区域 选择性粘贴-习听风雨

区域复制方法 Range.Copy

[mark_b]将单元格区域复制到指定的区域或剪贴板中。
语法

表达式.Copy(Destination)

表达式 一个代表 Range 对象的变量。

[/mark_b]

图片[4]-ExcelVBA | 007-复制单元格区域 选择性粘贴-习听风雨

全局控制,显示提示和警告消息,Application.DisplayAlerts

图片[5]-ExcelVBA | 007-复制单元格区域 选择性粘贴-习听风雨

如下图▼:先关闭屏幕提示①,再打开屏幕提示②

图片[6]-ExcelVBA | 007-复制单元格区域 选择性粘贴-习听风雨↑上图中CurrentRegion.copy是自动选择连续区域进行复制,如下图↓所示

图片[7]-ExcelVBA | 007-复制单元格区域 选择性粘贴-习听风雨

全局关闭复制虚线 Application.CutCopyMode 属性

[mark_b]复制类的代码运行完成后,为了美观要取消虚线显示[/mark_b]

[mark_d]返回或设置剪切或复制模式的状态。可为 True、False 或如下表所示的一个 XLCutCopyMode 常量。Long 类型,可读写。
语法

表达式.CutCopyMode

表达式 一个代表 Application 对象的变量。[/mark_d]

图片[8]-ExcelVBA | 007-复制单元格区域 选择性粘贴-习听风雨

「如果文章对您有用,欢迎点赞分享。」
© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发

请登录后发表评论

    请登录后查看评论内容