分享

ExcelVBA解读(57):自动填充单元格——AutoFill方法

 L罗乐 2017-05-19

 

先看看Excel中是怎么进行自动填充单元格操作的。

如下图所示,在单元格A1中输入数字1,将光标移至A1的左下角,待光标变成黑色实心十字后向下拖至A5单元格。

录制的宏代码如下:

 

这次与上面的操作一样,只是填充完后选取“填充序列”,可以看到单元格A1:A5区域按数字顺序填充了5个单元格。

录制的宏代码如下:

从上面的两项操作所录制的宏代码可以看出,VBA使用AutoFill方法实现自动填充功能。该方法带有两个参数,即Destination参数和Type参数。

 

AutoFill方法的语法

Range对象.AutoFill(Destination, Type)

说明

  • 参数Destination必需,指定要填充的单元格。该参数指定的单元格区域中必须包含源单元格区域。

  • 参数Type可选,指定如何基于源单元格区域中的内容对参数Destination指定的目标单元格区域实施填充,可以是下列XlAutoFillType常量:

常量xlFillCopy,值为1,从源单元格区域中复制值和格式到目标单元格区域,如有必要重复。

常量xlFillDays,值为5,扩展源单元格区域中星期几的名称到目标单元格区域,从源单元格区域复制格式到目标单元格区域,如果有必要重复。

常量xlFillDefault,值为0Excel确定用于填充目标单元格区域的值和格式。(Excel会依据源区域选择最适当的填充方式,例如,如果源区域为A1:A2,且单元格A1中的值为1,单元格A2中的值为2,那么向下拖动时,会自动填充序列,即123……

常量xlFillFormats,值为3,仅复制源单元格区域中的格式到目标单元格区域,如有必要重复。

常量xlFillMonths,值为7,将源区域中的月份名称扩展到目标单元格区域,格式也从源区域复制到目标单元格区域,如有必要重复。

常量xlFillSeries,值为2,以系列扩展源区域中的值到目标单元格区域(例如,“12”被扩展为“345”)。格式也从源区域复制到目标单元格区域,如有必要重复。

常量xlFillValues,值为4,仅复制源单元格区域的值到目标单元格区域,如有必要重复。

常量xlFillWeekdays,值为6,扩展源单元格区域中工作日的名称到目标单元格区域,格式也从源区域复制到目标单元格区域,如有必要重复。

常量xlFillYears,值为8,扩展源单元格区域中的年份到目标单元格区域,格式也从源区域复制到目标单元格区域,如有必要重复。

常量xlGrowthTrend,值为10,将数字值从源单元格区域扩展到目标单元格区域,假设源单元格区域中数字之间的关系是乘法的(例如,“12”被扩展为“4816”,假设每个数字是将先前数字乘以某个值的结果)。格式也从源区域复制到目标单元格区域,如有必要重复。

常量xlLinearTrend,值为9,将数字值从源单元格区域扩展到目标单元格区域,假设源单元格区域中数字之间的关系是加法的(例如,“12”被扩展为“345”,假设每个数字是将先前数字加某个值的结果)。格式也从源区域复制到目标单元格区域,如有必要重复。

常量xlFlashFill,值为11,基于检测到的先前用户操作的模式,将源范围的值扩展到目标范围内,如果需要重复。

 

示例1:使用代码在列中输入序号

如下图所示的工作表,要求在A列中输入从1开始的序号。

代码如下:

说明

 

示例2:自动更新列中的序号

如下图所示的工作表,我们不需要在列A中输入序号,Excel会为我们自动更新编号。只要在列B和列C中最后一行的某个单元格输入值,Excel会在下一行自动添加编号。例如,在B7C7单元格中输入数据后,A8会自动添加编号7

代码如下:

说明

  • 本例使用了工作表的Worksheet_SelectionChange事件,监测用户在工作表指定单元格区域的选择变化。

  • COUNTA函数用来统计单元格区域中是否有数据。

 

示例3:按自定义列表填充

如下图所示的工作表,在单元格区域A1:A7中是自定义的列表序列,现在要按这个自定义列表填充列C中的单元格区域。

代码如下:

说明

示例4:自动填充月份

如下图所示工作表,自动填充月份。

代码如下:

 

示例5:自动填充工作日

如下图所示的工作表,以当前单元格为起点自动填充工作日。

代码如下:

说明

对于所选区域的当前单元格(ActiveCell),即为所选区域中高亮显示的单元格。

  • Selection.Address获取当前所选区域的地址。

 

示例6:自动填充公式

下图所示的工作表,要求计算合价,即列C与列D的乘积值。

代码如下:


下图所示的工作表演示了如何自动填充数组公式。

代码如下:

 


 

如果您对本文介绍的内容还有什么好的示例,欢迎发送邮件给我:xhdsxfjy@163.com

也可以在本文下方留言,提出您的看法或建议。

本文属原创文章,转载请联系我或者注明出处。

 

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多