利用VBA代码替换完成复制

论坛 期权论坛 期权     
VBA语言专家   2019-7-15 09:21   5928   0

蓝字关注,加微信NZ9668获资料信息

《VBA代码解决方案》系列书作者
头条百家平台 VBA资深创作者
_______________________________


今日给大家推出VBA代码方案之十五,如何利用VBA代码替换完成复制的过程。在EXCEL中复制和粘贴时非常基本的操作,在VBA代码中复制和粘贴时如何操作的呢?今日给大家详细的讲解,这些代码可以在程序中直接利用,也可以在实际工作中稍加修改,加以利用,希望朋友们能活学活用。结合自己的实际工作灵活的运用。
Range对象的Copy方法的语法如下:
Copy(Destination)
参数Destination表示复制单元格区域的目标区域,如果省略该参数,Excel将把该区域复制到剪贴板中。使用Copy方法复制单元格区域时,也复制了该单元格区域的格式,
复制单元格区域时,如果目标区域为非空单元格区域,Excel将显示消息框提示是否替换单元格内容,可以设置
Application.DisplayAlerts属性值为False,使复制时不出现该消息框。
我们看下面的实际代码:
Sub MyCopy()
    Application.DisplayAlerts = False
     Sheet1.Range("A1").CurrentRegion.Copy Sheet2.Range("A1")
    Application.DisplayAlerts = True
  EndSub
代码解析:
上面MyCopy过程将Sheet1工作表中A1单元格的当前区域复制到Sheet2工作表中以A1单元格为左上角单元格的区域
第2行代码通常复制单元格区域的操作不会将单元格区域的列宽大小同时复制,如果希望在复制单元格区域的同时,也复制源区域的列宽大小,可以使用下面的代码。
  SubMyCopyWithSameColumnWidths()
     Sheet1.Range("A1").CurrentRegion.Copy
       WithSheet3.Range("A1")
         .PasteSpecial xlPasteColumnWidths
         .PasteSpecial xlPasteAll
     End With
    Application.CutCopyMode = False
  EndSub
代码解析:
第4行代码使用Range对象的PasteSpecial方法选择性粘贴剪贴板中的Range对象的列宽。
第5行代码粘贴剪贴板中的Range对象全部内容。
第7行代码取消应用程序复制模式。
应用于Range对象的PasteSpecial方法将剪贴板中的Range对象粘贴到指定区域,在粘贴时可以有选择的粘贴对象的部分属性。其语法如下:
PasteSpecial(Paste, Operation, SkipBlanks,Transpose)
参数Paste指定要粘贴的区域部分,可为如下所列的XlPasteType常量之一。
xlPasteAll       -4104      全部(默认值)
xlPasteAllExceptBorders 7 边框除外
xlPasteColumnWidths    8  列宽
xlPasteComments   -4144  批注
xlPasteFormats      -4122  格式
xlPasteFormulas     -4123 公式
xlPasteFormulasAndNumberFormats    11    公式和数字格式
xlPasteValidation     6     有效性验证
xlPasteValues  -4163      数值
xlPasteValuesAndNumberFormats 12    值和数字格式
参数Operation指定粘贴操作。XlPasteSpecialOperation为下面常量之一。
xlPasteSpecialOperationNone -4142      无(默认值)
xlPasteSpecialOperationAdd   2     加
xlPasteSpecialOperationSubtract   3     减
xlPasteSpecialOperationMultiply    4     乘
xlPasteSpecialOperationDivide      5     除
参数SkipBlanks指示是否跳过空单元格,若参数值为True,则不将剪贴板上区域中的空白单元格粘贴到目标区域中。默认值为False。
参数Transpose指示是否进行转置,若参数值为True,则粘贴区域时转置行和列。默认值为False。
代码截图:


运行前:


运行后:


今日内容回向:
1  Copy(Destination)意义是什么?
2  PasteSpecial(Paste,Operation, SkipBlanks, Transpose) 意义是什么?
_____________________________

觉得有启发,点个“在看”,转给朋友们
欢迎你“留言”,和作者直接交流

更多关联阅读








  




分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:200
帖子:40
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP