先看看Excel中是怎么进行自动填充单元格操作的。 如下图所示,在单元格A1中输入数字1,将光标移至A1的左下角,待光标变成黑色实心十字后向下拖至A5单元格。 录制的宏代码如下:
这次与上面的操作一样,只是填充完后选取“填充序列”,可以看到单元格A1:A5区域按数字顺序填充了5个单元格。 录制的宏代码如下: 从上面的两项操作所录制的宏代码可以看出,VBA使用AutoFill方法实现自动填充功能。该方法带有两个参数,即Destination参数和Type参数。
AutoFill方法的语法 Range对象.AutoFill(Destination, Type) 说明:
常量xlFillCopy,值为1,从源单元格区域中复制值和格式到目标单元格区域,如有必要重复。 常量xlFillDays,值为5,扩展源单元格区域中星期几的名称到目标单元格区域,从源单元格区域复制格式到目标单元格区域,如果有必要重复。 常量xlFillDefault,值为0,Excel确定用于填充目标单元格区域的值和格式。(Excel会依据源区域选择最适当的填充方式,例如,如果源区域为A1:A2,且单元格A1中的值为1,单元格A2中的值为2,那么向下拖动时,会自动填充序列,即1、2、3……) 常量xlFillFormats,值为3,仅复制源单元格区域中的格式到目标单元格区域,如有必要重复。 常量xlFillMonths,值为7,将源区域中的月份名称扩展到目标单元格区域,格式也从源区域复制到目标单元格区域,如有必要重复。 常量xlFillSeries,值为2,以系列扩展源区域中的值到目标单元格区域(例如,“1,2”被扩展为“3,4,5”)。格式也从源区域复制到目标单元格区域,如有必要重复。 常量xlFillValues,值为4,仅复制源单元格区域的值到目标单元格区域,如有必要重复。 常量xlFillWeekdays,值为6,扩展源单元格区域中工作日的名称到目标单元格区域,格式也从源区域复制到目标单元格区域,如有必要重复。 常量xlFillYears,值为8,扩展源单元格区域中的年份到目标单元格区域,格式也从源区域复制到目标单元格区域,如有必要重复。 常量xlGrowthTrend,值为10,将数字值从源单元格区域扩展到目标单元格区域,假设源单元格区域中数字之间的关系是乘法的(例如,“1,2”被扩展为“4,8,16”,假设每个数字是将先前数字乘以某个值的结果)。格式也从源区域复制到目标单元格区域,如有必要重复。 常量xlLinearTrend,值为9,将数字值从源单元格区域扩展到目标单元格区域,假设源单元格区域中数字之间的关系是加法的(例如,“1,2”被扩展为“3,4,5”,假设每个数字是将先前数字加某个值的结果)。格式也从源区域复制到目标单元格区域,如有必要重复。 常量xlFlashFill,值为11,基于检测到的先前用户操作的模式,将源范围的值扩展到目标范围内,如果需要重复。
示例1:使用代码在列中输入序号 如下图所示的工作表,要求在A列中输入从1开始的序号。 代码如下: 说明:
示例2:自动更新列中的序号 如下图所示的工作表,我们不需要在列A中输入序号,Excel会为我们自动更新编号。只要在列B和列C中最后一行的某个单元格输入值,Excel会在下一行自动添加编号。例如,在B7或C7单元格中输入数据后,A8会自动添加编号7。 代码如下: 说明:
示例3:按自定义列表填充 如下图所示的工作表,在单元格区域A1:A7中是自定义的列表序列,现在要按这个自定义列表填充列C中的单元格区域。 代码如下: 说明:
示例4:自动填充月份 如下图所示工作表,自动填充月份。 代码如下:
示例5:自动填充工作日 如下图所示的工作表,以当前单元格为起点自动填充工作日。 代码如下: 说明:
对于所选区域的当前单元格(ActiveCell),即为所选区域中高亮显示的单元格。
示例6:自动填充公式 下图所示的工作表,要求计算合价,即列C与列D的乘积值。 代码如下: 下图所示的工作表演示了如何自动填充数组公式。 代码如下:
如果您对本文介绍的内容还有什么好的示例,欢迎发送邮件给我:xhdsxfjy@163.com 也可以在本文下方留言,提出您的看法或建议。 本文属原创文章,转载请联系我或者注明出处。
|
|