Excel VBA 学习笔记14:单元格编辑示例

声明:本系列文章是学习蓝色幻想视频和《别怕,Excel VBA其实很简单》的

笔记总结,知识版权归上述两作品所有,图片均来自蓝色幻想视频。

Excel VBA 学习笔记14:单元格编辑示例

一、单元格输入

1. 单元格输入

Excel VBA 学习笔记14:单元格编辑示例

&符号是连接符,能将前后内容连接到一起,注意,变量不需要加双引号,非变量记得加双引号。

ASCII码10代表换行符,即alt+enter,13代表回车,32代表空格。这些常见的希望大家能有个印象。

2. 单元格复制和剪切

Excel VBA 学习笔记14:单元格编辑示例

用copy方法可以将选中内容复制到剪切板,然后指定目标区域的顶点即可,这是复制粘贴的基础知识,后面会逐步增加些新的知识点。

Excel VBA 学习笔记14:单元格编辑示例

粘贴到当前活动表格的D1单元格。

Excel VBA 学习笔记14:单元格编辑示例

选择性粘贴,只有值,具体每种选择性粘贴用哪个代码请大家自己录制宏比较一下代码。

Range.PasteSpecial 方法

将 Range 从剪贴板粘贴到指定的区域中。

语法

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

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

参数

名称 必选/可选 数据类型 说明

Paste 可选 XlPasteType 要粘贴的区域部分。

Operation 可选 XlPasteSpecialOperation 粘贴操作。

SkipBlanks 可选 Variant 如果为 True,则不将剪贴板上区域中的空白单元格粘贴到目标区域中。默认值为 False。

Transpose 可选 Variant 如果为 True,则在粘贴区域时转置行和列。默认值为 False。

================

XlPasteType

名称 值 说明

xlPasteAll -4104 粘贴全部内容。

xlPasteAllExceptBorders - 7 粘贴除边框外的全部内容。


xlPasteAllMergingConditionalFormats -14 将粘贴所有内容,并且将合并条件格式。


xlPasteAllUsingSourceTheme -13 使用源主题粘贴全部内容。

xlPasteColumnWidths -8 粘贴复制的列宽。

xlPasteComments -4144 粘贴批注。

xlPasteFormats -4122 粘贴复制的源格式。

xlPasteFormulas -4123 粘贴公式。


xlPasteFormulasAndNumberFormats -11 粘贴公式和数字格式。

xlPasteValidation -6 粘贴有效性。

xlPasteValues -4163 粘贴值。


xlPasteValuesAndNumberFormats 12 粘贴值和数字格式。

======

XlPasteSpecialOperation

名称 值 说明


xlPasteSpecialOperationAdd -2 复制的数据与目标单元格中的值相加。


xlPasteSpecialOperationDivide -5 复制的数据除以目标单元格中的值。


xlPasteSpecialOperationMultiply -4 复制的数据乘以目标单元格中的值。


xlPasteSpecialOperationNone -4142 粘贴操作中不执行任何计算。


xlPasteSpecialOperationSubtract -3 复制的数据减去目标单元格中的值。

Excel VBA 学习笔记14:单元格编辑示例

剪切的用法。

Excel VBA 学习笔记14:单元格编辑示例

在使用选择性粘贴的时候非常赞的一个功能,直接将剪切板上的数据跟原数据相加,不需要设置辅助列。

Excel VBA 学习笔记14:单元格编辑示例

这个例子就不再是复制的代码了,但是同样实现了复制数值的功能。

3. 填充公式

Excel VBA 学习笔记14:单元格编辑示例

填充柄是Excel利用率非常高的操作,VBA中实现也很简单,就是定好要填充的区域,向下用FillDown,向右用FillRight。注意,如果自定义公式填充的话,起始位置一定要有公式!

二、单元格行列的删除和插入

这里我们做一个稍微大一点的例子,从学习插入行和列开始,一步一步到实现数据分类汇总。

1.插入行

Excel VBA 学习笔记14:单元格编辑示例

基础语法,学起来。在第4行前插入一行。记住,默认情况下,插入操作跟手动操作表格一样,都是在选中的行或列以前插入。要插入多行或列,跟手动操作一样,你选中几个就一次插入几个,比如Rows(4:10).Insert Shift:=xlDown,插入了7行。

2.插入行并复制公式

Excel VBA 学习笔记14:单元格编辑示例

继续深入探究,在第4行前面插入一行,现在空白行是第4行,原来的第4行成了第5行,要把第3行公式复制填充下来,并且定位第4行的空单元格。Range的SpecialCells就相当于Ctrl + G 定位,

xlCellTypeConstants是指含有常量的单元格。

3.插入多个空白行

Excel VBA 学习笔记14:单元格编辑示例

要做分类汇总就要实现每一个类别下面都插入一行。这里判断出值不一样的地方,然后插入了一行,但是要注意新插入的那行会占用一个行号。有多少类就会插入多少行,所以x的循环值要设置的比表格多很多,而且这里不能用变量,因为插入一行整个表格会多一行。

4.分类汇总

(1)实现简单的分类汇总

Excel VBA 学习笔记14:单元格编辑示例

我们将前面学的慢慢组装到一起,来实现简单的分类汇总功能。上面提到x的循环范围要比表格真实行数多,以免分类多插入行数多造成有的数据没有被汇总到。这段代码的思路比较直观,用两个变量m1和m2存储当前分类的开始位置和结束位置,然后汇总m1到m2之间的数值,其中用到了向右填充。m1的初始值很好确定,是表格固定好的,关键在于第一类汇总完,从第二类开始怎么表示,图中有注释,请大家仔细思考。

(2)蓝色幻想个人方法

Excel VBA 学习笔记14:单元格编辑示例

前面我们的代码有个问题,已经提到两次了,x的循环值要人为设置的比表格真实值大,可是我怎么知道该设置多大,难不成每次都循环到65536吗?蓝色幻想给了他的个人办法,这也是编程吸引我的地方,你要不断的去思考,总有更好的办法解决问题!跟上节课合并单元格一样,我们倒着循环。具体代码可能稍微有些难度,等看的多了就理解了。

(3)删除汇总行

Excel VBA 学习笔记14:单元格编辑示例

分类汇总完了要把汇总行删除,我们用的定位A列空白单元格的方式,然后删除整行,这个方法适用于很多场合。

Excel VBA 学习笔记13:单元格的格式

Excel VBA 学习笔记12:单元格信息


Excel VBA 学习笔记11:特殊单元格定位

Excel VBA 学习笔记10:单元格的选取


分享到:


相關文章: