《VBA代码解决方案》(版权10028096)这套教程是我最早推出的教程,目前已经是第三版修订了。这套教程定位于入门后的提高,在学习这套教程过程中,侧重点是要理解及掌握我的“积木编程”思想。要灵活运用教程中的实例像搭积木一样把自己喜欢的代码摆好。
这套教程共三册,一百四十七讲,内容覆盖较广,也是初级和中级间的过渡教程,改版后的内容主要是提供程序源码文件及代码修正为32位和64位兼用代码。今后一段时间会给大家陆续推出。今日的内容是VBA代码解决方案第十讲:利用VBA代码完成复制
【分享成果,随喜正能量】每个人在自己的时区都有自己的步程。不用嫉妒或嘲笑他人。他们都在自己的时区里,你也是!等待正确的行动时机,放轻松。你虽然没有领先但也没有落后。在命运为你安排的属于自己的时区里,一切都准时。。
第十讲 利用VBA代码完成复制
今日给大家推出VBA代码方案第十讲:如何利用VBA代码完成复制的过程。在EXCEL中复制和粘贴是非常基本的操作,在VBA代码中复制和粘贴是如何操作的呢?今日给大家详细的讲解。这些代码可以在程序中可以直接利用,也可以在实际工作中稍加修改,以适合自己的应用环境,希望朋友们能活学活用。结合自己的实际工作灵活运用。
1 Range对象的Copy方法
在VBA代码中的复制是利用Range对象的Copy方法,
其语法如下:Copy(Destination)
参数Destination表示复制单元格区域的目标区域,如果省略该参数,Excel将把该区域复制到剪贴板中。使用Copy方法复制单元格区域时,也复制了该单元格区域的格式,
复制单元格区域时,如果目标区域为非空单元格区域,Excel将显示消息框提示是否替换单元格内容,可以设置Application.DisplayAlerts属性值为False,使复制时不出现该消息框。
2 利用Copy方法完成复制的代码及代码解读
我们看下面的实际代码:
Sub mynz_10_1() '第10讲 利用VBA代码完成复制
Application.DisplayAlerts = False
Sheets("9").Range("A1").CurrentRegion.Copy Sheets("10").Range("A1")
Application.DisplayAlerts = True
End Sub
代码解析:
上面过程将Sheets("9")工作表中A1单元格的当前区域,复制到Sheets("10")工作表中以A1单元格为左上角单元格的区域
3 Range对象的PasteSpecial方法完成选择性粘贴
上述代码中,第3行代码通常复制单元格区域的操作不会将单元格区域的列宽大小同时复制,如果希望在复制单元格区域的同时,也复制源区域的列宽大小,可以使用下面的代码。
Sub mynz_10_2() '第10讲 利用VBA代码完成复制
Sheets("9").Range("A1").CurrentRegion.Copy '复制到剪切板中
With Sheets("10").Range("d1")
.PasteSpecial xlPasteColumnWidths '选择性粘贴剪贴板中的Range对象的列宽
.PasteSpecial xlPasteAll 'Range对象全部内容
End With
Application.CutCopyMode = False '取消应用程序复制模式
End Sub
代码截图:
代码解析:
1) 第4行代码使用Range对象的PasteSpecial方法选择性粘贴剪贴板中的Range对象的列宽。
2)第5行代码粘贴剪贴板中的Range对象全部内容。
3)第7行代码取消应用程序复制模式。
- 应用于Range对象的PasteSpecial方法将剪贴板中的Range对象粘贴到指定区域,在粘贴时可以有选择的粘贴对象的部分属性。其语法如下:
PasteSpecial(Paste, Operation, SkipBlanks, Transpose)
1)参数Paste指定要粘贴的区域部分,可为如下所列的XlPasteType常量之一。
xlPasteAll -4104 全部(默认值)
xlPasteAllExceptBorders 7 边框除外
xlPasteColumnWidths 8 列宽
xlPasteComments -4144 批注
xlPasteFormats -4122 格式
xlPasteFormulas -4123 公式
xlPasteFormulasAndNumberFormats 11 公式和数字格式
xlPasteValidation 6 有效性验证
xlPasteValues -4163 数值
xlPasteValuesAndNumberFormats 12 值和数字格式
2)参数Operation指定粘贴操作。XlPasteSpecialOperation为下面常量之一。
xlPasteSpecialOperationNone -4142 无(默认值)
xlPasteSpecialOperationAdd 2 加
xlPasteSpecialOperationSubtract 3 减
xlPasteSpecialOperationMultiply 4 乘
xlPasteSpecialOperationDivide 5 除
3)参数SkipBlanks指示是否跳过空单元格,若参数值为True,则不将剪贴板上区域中的空白单元格粘贴到目标区域中。默认值为False。
4)参数Transpose指示是否进行转置,若参数值为True,则粘贴区域时转置行和列。默认值为False。
复制内容:
运行后:
今日内容回向:
1 Copy(Destination) 意义是什么?
2 PasteSpecial(Paste, Operation, SkipBlanks, Transpose) 意义是什么?
本讲内容参考程序文件:VBA代码解决方案(1-19).xlsm
我20多年的VBA实践经验,全部浓缩在下面的各个教程中: