总是听到或看到有人问,编程好学吗?如何入门?多久能学会?它能做些什么?怎么写代码呀?...如果你也有类似的问题那就赶快关注我的公众号,本公众号一直在不间断地分享编程案例和实用技巧,无论您想提升自动化办公效率还是编程技能,都能收获满满
在日常Excel数据处理工作中,连续序号、递增日期、规律序列是最基础也最常用的数据格式。如果依靠手动输入、下拉填充、复制粘贴,不仅效率低下、容易出错,面对大批量数据时更是耗时费力。而借助VBA中的AutoFill自动填充方法,可以实现一键生成、批量处理、精准可控,让数据填充从“手工操作”升级为“自动化执行”,大幅提升工作效率与数据准确性
AutoFill是Excel VBA中专门用于自动填充的方法,它能够模仿Excel手动下拉填充的逻辑,通过代码自动完成序号递增、日期顺延、月份/年份跳转、规律数字生成等操作,支持整列、整片区域的批量填充,不受数据行数限制,是处理标准化表格的必备技能
接下来通过两个案例详细说明其使用方法和技巧
自动填充工作日
在考勤、项目计划中,常常只需要工作日序列。AutoFill配合参数可直接实现智能跳过周六、周日
以下代码的功能:从当前日期开始,自动填充一系列日期,并且只填充工作日(即自动跳过周六和周日)
Sub FillDate() Dim ws As Worksheet Set ws = ActiveSheet ws.Range("B2").Value = Date ws.Range("B2").AutoFill Destination:=ws.Range("B2:B31"), Type:=xlFillWeekdaysEnd Sub
能自动跳过周六和周期,关键是利用了xlFillWeekdays类型。填充后效果展示:
自动填充序号
手动填充序号时,一旦数据删除、插入行,序号就会错乱,需要重新下拉。使用VBA AutoFill可以一键生成、自动适配行数,彻底避免错误
以下代码执行后,A列将自动生成 1、3、5、7、9……的等差序号。无论需要填充100行还是10000行,只需修改目标区域,一秒完成
Sub FillSeries() Dim ws As Worksheet Set ws = ActiveSheet ws.Range("A2").Value = 1 ws.Range("A3").Value = 3 ws.Range("A2:A3").AutoFill Destination:=ws.Range("A2:A31"), Type:=xlFillSeriesEnd Sub
代码的核心是使用 AutoFill 方法选中了包含初始值(A2:A3)的区域,指定填充的目标区域为 A2:A31,并设置填充类型为 xlFillSeries(即“填充序列”)。最终填充结果如下:
通过以上两个案例,总结使用AutoFill方法的两个原则:
另外,关于其他常用填充类型,明天继续分享