纠纷奇闻社交美文家庭
投稿投诉
家庭城市
爱好生活
创业男女
能力餐饮
美文职业
心理周易
母婴奇趣
两性技能
社交传统
新闻范文
工作个人
思考社会
作文职场
家居中考
兴趣安全
解密魅力
奇闻笑话
写作笔记
阅读企业
饮食时事
纠纷案例
初中历史
说说童话
乐趣治疗

ExcelVBA解读(50):选择性粘贴PasteS。。。

3月27日 孤小单投稿
  
  正如在上篇文章中谈到的,复制、剪切、粘贴是Excel中最常用的操作,尤其是粘贴功能。本文将详细介绍如何在VBA中编写粘贴代码。
  
  在下图所示的工作表中执行代码:
  Range(A1)。Copy
  Range(A3)。PasteSpecial
  其结果如图中下方所示。
  也可以直接使用Copy方法:
  Range(A1)。CopyRange(A3)
  达到同样的效果。唯一不同的是,使用PasteSpecial方法后,原数据单元格四周虚框不会消失,而使用Copy方法则没有虚框。
  
  理解选择性粘贴和PasteSpecial方法
  既然结果相同,为什么还要使用PasteSpecial方法呢?我们在Excel中单击“粘贴”按钮下方的小箭头,如下图所示:
  可以看出,“粘贴”功能很强大,可以实现多种形式的粘贴。这就是PasteSpecial的一大优势,其实就是用VBA实现Excel的“选择性粘贴”功能。。
  
  我们来看看PasteSpecial方法的语法:
  Range对象。PasteSpecial(Paste,Operation,SkipBlanks,Transpose)
  说明:
  参数均为可选。若没有指定参数,则直接复制。
  参数Paste可以指定一个xlPasteType常量,指定复制的具体内容。默认为全部复制。其具体常量参见下图。
  此外,还有一个xlPasteAllMergingConditionalFormats常量,粘贴全部内容且合并条件格式(注:本文使用的是Excel2007版本)。
  参数Operation可以指定一个xlPasteSpecialOperation常量,指明粘贴时要进行的运算操作,即将复制的单元格中的数据与指定单元格区域中的值进行加减乘除运算。与上图的“运算”部分相对应:xlPasteSpecialOperationNone代表无,即不进行任何运算操作,这也是默认值;xlPasteSpecialOperationAdd代表加运算,即将指定的单元格区域中的值加上所复制的单元格中的值;xlPasteSpecialOperationSubtract代表减运算;xlPasteSpecialOperationMultiply代表乘运算;xlPasteSpecialOperationDivide代表除运算。
  参数SkipBlanks与上图中的“跳过空单元格”相对应,设置为True(即在上图中选中“跳过空单元格”)表示剪贴板中单元格区域的空单元格不会被粘贴到目标单元格区域,即被粘贴区域中与复制的单元格区域中空单元格对应的区域仍为原值。默认为False。
  参数Transpose与上图中的“转置”相对应,设置为True表明当粘贴时要将行列互换。默认为False。
  
  为方便理解,再将上图详细解释如下:
  全部:粘贴所有内容,包括文本、格式、边框、公式、批注等,相当于直接粘贴。
  公式:只粘贴文本和公式,不粘贴其它如格式、边框、批注等。如果复制的单元格中的公式相对引用了其它单元格,那么粘贴的单元格相应引用的单元格的相对位置与源公式相同。
  数值:只粘贴数值,尽管所复制的单元格中的内容是公式计算的结果。
  格式:只粘贴格式,不改变粘贴单元格内容。
  批注:只粘贴所复制单元格的批注,不改变粘贴单元格内容和格式。
  有效性验证:只粘贴有效性验证的内容。
  边框除外:粘贴除边框外的所有内容。
  列宽:使粘贴单元格与所复制的单元格列宽相同。
  公式和数字格式:只粘贴公式和数字格式。
  值和数字格式:粘贴值并带数字格式。
  有兴趣的朋友可以在Excel中随意设置数据,使用不同的选项粘贴,看看实际效果。
  
  当在粘贴中选格式、批注或有效性验证时,运算中的选项不可用。
  运算中的选项可用来实现单元格区域中的数据都加、减、乘、除一个数,或者两个单元格区域之间的加减乘除的计算。
  
  跳过空单元格:粘贴时,复制的单元格区域中为空的单元格不会覆盖粘贴区域相应单元格。
  转置:行与列互换。
  
  粘贴链接:粘贴后,所复制的单元格内容改变,则粘贴的单元格也相应改变,即两个单元格保持一致。
  
  示例1:只粘贴格式而不粘贴值
  如图所示,只是将单元格区域C2:C4中的格式粘贴到单元格区域E2:E4。
  代码如下:
  SubtestPasteSpecial1()
  Range(C2:C4)。Copy
  Range(E2)。PasteSpecialPaste:xlPasteFormats
  EndSub
  
  示例2:只粘贴值
  有时,我们只需要粘贴的结果只单纯的值,而不需要其它,如下图所示。
  代码如下:
  SubtestPasteSpecial2()
  Range(C2:C4)。Copy
  Range(F2)。PasteSpecialPaste:xlPasteValues
  EndSub
  
  示例3:粘贴值并保持列宽
  使用语句将单元格区域A1:A3中的值复制到单元格区域C1:C3中:
  Range(A1:A3)。CopyRange(C1)
  此时,如果列A中的单元格已设置为合适的列宽,复制到C列中后并没有合适的列宽容纳复制过来的值,也就是说,有些单元格的内容可能会延至单元格区域外,如下图所示:
  
  有时,我们需要在粘贴的区域保持原始数据的列宽。使用PasteSpecial方法并设置Paste参数,可以复制值并保持列宽。代码如下:
  SubtestPasteSpecial3()
  Range(A1:A3)。Copy
  Range(C1)。PasteSpecialPaste:xlPasteColumnWidths
  Range(C1)。PasteSpecialPaste:xlPasteValues
  EndSub
  运行代码后的效果如图:
  
  也可以将PasteSpecial方法与Copy方法结合:
  SubtestPasteSpecial4()
  Range(A1:A3)。Copy
  Range(C1)。PasteSpecialPaste:xlPasteColumnWidths
  Range(A1:A3)。CopyRange(C1)
  EndSub
  
  示例4:对粘贴的区域进行运算
  如图所示,需要对单元格区域A1:A3中的值同时乘以3。
  代码如下:
  SubtestPasteSpecial5()
  Range(C1)。Copy
  Range(A1:A3)。PasteSpecialOperation:xlPasteSpecialOperationMultiply
  EndSub
  
  示例5:将行列转置
  有时,我们需要将所复制的单元格区域的行列互换,如下图所示:
  代码如下:
  SubtestPasteSpecial6()
  Range(A1:A3)。Copy
  Range(C1)。PasteSpecialTranspose:True
  EndSub
  
  陷阱
  1。使用PasteSpecial方法时剪贴板中没有数据
  经常会看到有人提出疑惑,使用PasteSpecial方法时会出错。例如,执行下面的代码:
  SubtestPasteSpecial7()
  Selection。PasteSpecialPaste:xlPasteColumnWidths,Operation:xlNone,
  SkipBlanks:False,Transpose:False
  Selection。PasteSpecialPaste:xlPasteValues,Operation:xlNone,SkipBlanks
  :False,Transpose:False
  EndSub
  VBA会提示出错:
  
  这是因为剪贴板中没有可供粘贴的数据。特别是,当你在工作表中复制单元格区域后,在功能区中选择“开发工具”“宏”或者按AltF8调出宏对话框时,Excel会清除剪贴板。(事实上,在单元格中使用复制命令后,访问Excel中的任何对话框,剪贴板中的数据都会被清除)因此,再执行上述代码的话,肯定会出错了!
  为了避免出现上述情况,可以将上面的宏过程赋给一个按钮,直接单击按钮执行;或者在VBE中按F5键执行。
  2。使用Range(“A1”)。Paste形式
  一般认为,有Copy方法,一定有相应的Paste方法,所以就会写出下面的错误代码:
  Range(A1)。Copy
  Range(C1)。Paste
  事实上,Range对象有Copy方法,但是没有Paste方法,其粘贴的方法就是我们这里介绍的PasteSpecial方法,而Paste方法属于Worksheet对象(在介绍Worksheet对象时将详细讲解Paste方法)。
  
  
  
  如果您对本文介绍的内容有什么建议或好的示例,欢迎发送邮件给我:xhdsxfjy163。com。
  您也可以在本文下发表留言,留下您的足迹。
  本文属原创文章,转载请联系我或者注明出处。
  
  关注《完美Excel》微信公众账号:
投诉 评论 转载

Excel表格太大时,怎么打印到一页上?首先,还是普及一下这个小技巧:下面这个表格,打印时显示有2页想打印到一页上很简单:在【页面布局】选项卡上,直接就可以设置高度和宽度,也可以点打印标题,在打印设……excel实用技巧:如何添加数据单位切换的选项。。。编按:年终了,很多单位要编辑年度销售报表。销售金额大,到底单位用元还是万元呢?用元,数字精确,但长长的数字不易读;用万元,数字易读,但看不出准确值。现在不用纠结了,金额单位一键……长达100页的PPT花了多长时间,大神用这些技。。。PPT软件当属目前在我们学习生活工作过程中使用频率最高、实用性最强的了。可上班总被老板吐槽PPT做的慢,效率低。明明很用心做的实在委屈。那么今天小编教大家几个PPT小技巧,让你……不熬夜加班,这7个Word技巧,你一定要学会1、快速导出PDF有时想要打印他人的文档,但又要防止格式被更改,这时转换为PDF就比较重要的了。方法:导出创建PDF2、使用模板如果你需要一份简历、海报……9个必学的Word实用操作!你会几个?要论最常用的办公软件,非OfficeWord莫属。我们每天面对Word那么久,但这9个让Word效率翻倍的快捷操作,你会几个?NO。1快速调整段落对齐还在用鼠标单击……跟我学WPS:书本文字录入电脑,就那么简单!我们很多人都有过这样的想法,如果能将书中需要的文字,不通过打字就可以快速录入电脑中,这样就可以大大的提高记录的效率了。特别是对于打字速度不快的人来说,这样的方法更是再好不过了。……史上最全的68条Excel技巧动图,简明却强大实。。。无论你是学生、白领、还是员工、领导下面的东西绝对能让你在关键时刻成为众人心中的大拿。码字辛苦,希望支持!1。标题跨列居中2。共享工作簿3。添加注释说明文……OfficeWord除了打字还能干什么?一般说到word文档,大家首先想到的就是用于编辑文字,不过,word文档里面的功能可还远不止这些哦!下面我们就一起来看看word里面的一些不务正业的功能吧。1、去除背景颜……16个Excel函数公式,解决会计工作中80的难。。。兰色做过几年会计相关的数据统计和分析工作,今天兰色就把会计常用的Excel公式进行一次整理,共16个,希望对做会计工作的同学们有用。1、完成率公式如下图所示,要求根……技巧丨仅需10秒,使用Word巧换寸照背景色寸照背景色更换我们在很多场合都需要用到寸照,不管是2寸、3寸或5寸的,在拍照现场一般会选择一个底色(比如红色、蓝色)作为寸照的背景色。但是,我们在某些网站提交时会发现,对……ExcelVBA解读(50):选择性粘贴PasteS。。。正如在上篇文章中谈到的,复制、剪切、粘贴是Excel中最常用的操作,尤其是粘贴功能。本文将详细介绍如何在VBA中编写粘贴代码。在下图所示的……下载丨仅剩1天!超全电气计算EXCEL表格,自。。。收藏了,一篇篇的电工计算公式文章,购买了,一本本的计算口诀书,到头来遇到各种电气计算问题,还是不会算?今天小编给你送上超全电气计算EX……
微信怎么关闭通知栏显示消息内容微信公众号如何给用户发送文字和图片怎么查看花呗还款时间世界智能制造行业发展如何个人所得税App怎么下载?三大运营商怎样争夺5G市场京东如何弄到白条12期免息腾讯网游加速器怎么用电脑显示器无信号输入怎么办如何看待腾讯now直播和QQ空间直播网上调查问卷怎么制作怎么查自己的开房记录多彩的瓷都去机场换登机牌要提前多久活跃在俄乌战场上的日本品牌建伍八重洲给我们带来什么反思?卸妆膏能不能带上动车乘坐高铁可以带卸妆膏吗中医的两种理论体系学习冯世纶教授经方讲学南航集团暑运投入航班超16万班次国内日均计划航班量超2200川普怒批美国女足你们本该获得金牌双鱼坐男生开运(双鱼座第一星座)斗鱼怎么自己开直播?女排零封美国队,网友赢得轻松是人家没上大主力让着你,我呸支付宝蚂蚁庄园小鸡问答哪种塑料外卖打包盒可以放进微波炉加热蚂做老板如何管理好员工

友情链接:中准网聚热点快百科快传网快生活快软网快好知文好找美丽时装彩妆资讯历史明星乐活安卓数码常识驾车健康苹果问答网络发型电视车载室内电影游戏科学音乐整形