【分享成果,随喜正能量】人真的不必逼自己去做不像自己的那种人,强大固然是好,但脆弱和柔软也没有什么过错。一个人不用活得像一支队伍,一个人只要活得像一个人就行了,有尊严,有追求,有梦想,也有软弱和颓废的时候。真实的生活,真实的提高自己。
《VBA代码解决方案》这套教程是我最早推出的教程,目前已经是第二版修订了。这套教程定位于入门后的提高,在学习这套教程过程中,侧重点是要理解及掌握我的“积木编程”思想。要灵活运用教程中的实例像搭积木一下把自己喜欢的代码摆好。
这套教程共三册,一百四十七讲,内容覆盖较广,也是初级和中级间的过度教程,改版后的内容主要是提供程序源码文件及代码修正为32位和64位兼用代码。今后一段时间会给大家陆续推出。今日的内容是第11讲:VBA代码中仅仅复制数值的操作
第十一讲 在复制单元格区域时,如何仅复制数值
大家好,今日继续给大家讲解VBA代码解决方案的第11讲:在复制单元格区域时,如何仅复制单元格区域的数值。
在上一讲中讲了利用VBA代码完成复制粘贴,今天我们继续这个话题。在上一讲中我们讲了选择性粘贴的利用,今日我们就利用上一讲中的PasteSpecial来解决只粘贴数值的方法,同时还会给大家介绍一种更为直接的方案。
1 使用选择性粘贴PasteSpecial使用选择性粘贴功能并指定粘贴数值,如下面的代码所示。
Sub mynz_11_1() '第11讲 在复制单元格区域时,如何仅复制单元格区域的数值
Sheets("6").Range("A1").CurrentRegion.Copy '复制到剪切板中
Sheets("11").Range("A1").PasteSpecial Paste:=xlPasteValues '选择性粘贴剪贴板中数值
Application.CutCopyMode = False '取消应用程序复制模式
End Sub
代码解析:上述过程复制工作表Sheets("6")中A1单元格的当前区域的数值到工作表Sheets("11").的A1单元格所在区域中。
1)第2行代码将Sheets("6")中A1单元格的当前区域进行复制。
2)第3行代码使用选择性粘贴功能并指定粘贴数值,选择性粘贴数值仅复制了单元格区域的数值,单元格区域的格式(背景颜色、字体对齐格式和边框等)不会被复制。
2 直接赋值的方法除了使用上述Copy方法外,还可以使用直接赋值的方法,这种方法比较简单,可以节省内存的应用,如下面的代码所示。
Sub mynz_11_2() '第11讲 在复制单元格区域时,如何仅复制单元格区域的数值
With Sheets("6").Range("A1").CurrentRegion
Sheets("11").Range("A1").Resize(.Rows.Count, .Columns.Count).Value = .Value '选择性粘贴剪贴板中数值
End With
End
代码解析:上述过程将工作表Sheets("6")中的A1单元格的当前区域的数值赋予工作表Sheets("11")的A1单元格所在的单元格区域。
- 在对单元格区域直接赋值时,应保证源区域大小与目标区域的大小一致,如果源区域为动态的单元格区域,可使用Resize方法确定目标区域。
我们看看上面方法的实例截图:
运行结果:
今日内容回向:
1 语句Sheets("11").Range("A1").PasteSpecial Paste:=xlPasteValues的意义是什么?
2 语句Sheets("11").Range("A1").Resize(.Rows.Count, .Columns.Count).Value = .Value的意义是什么?
我20多年的VBA实践经验,全部浓缩在下面的各个教程中:
第7套教程(共三册):《VBA之EXCEL应用》:是对VBA基本的讲解
第1套教程(共三册):《VBA代码解决方案》:是入门后的提高教程
第4套教程(16G):VBA代码解决方案之视频(第一套的视频讲解)
第3套教程(共两册):《VBA数组与字典解决方案》:是对数组和字典的专题讲解
第2套教程(共两册):《VBA数据库解决方案》:是对数据库的专题讲解
第6套教程(共两册):《VBA信息获取与处理》:讲解VBA的网络及跨程序应用
第5套教程(共两册):VBA中类的解读和利用:类及接口技术的讲解
第8套教程(共三册):VBA之Word应用(最新教程):word中VBA的利用
上述教程的学习顺序:
① 7→1→3→2→6→5或者7→4→3→2→6→5。
② 7→8
- 如何学习VBA呢? 概括的说就是: 学习过程中要信、解、受、持,更要有回向的业力。无论您在学习的任何阶段,都要对照教程的知识点加持自己的实际工作,总会有丰厚的收获。