说明
批量填充某一列的数据,且这一列有很多行有内容,需要将每一行的空白格填入上方离空白格最近的内容。
需求场景:
如下图,需求数据为A列,要求实现B列效果
步骤:
1.打开Excel文件,按下Alt + F11打开VBA编辑器
2.在VBA编辑器中,点击菜单栏的插入,选择模块
3.在新建的模块中,插入以下VBA代码:
Sub 填充单元格()
Dim lastRow As Long
Dim fillValue As Variant
Dim i As Long
lastRow = Cells(Rows.Count, 1).End(xlUp).Row ' 获取第一列最后一行的行数
fillValue = Cells(1, 1).Value ' 获取第一个单元格的值
For i = 2 To lastRow
If Cells(i, 1).Value = "" Then ' 如果单元格为空,则填充上一个非空单元格的值
Cells(i, 1).Value = fillValue
Else ' 如果单元格不为空,则更新当前的填充值
fillValue = Cells(i, 1).Value
End If
Next i
End Sub
4.保存,关闭VBA编辑器
5.返回Excel界面,在想要进行填充的工作表中,按下Alt + F8打开宏对话框
6.在对话框中选择刚刚创建的宏"填充单元格",然后点击"运行"按钮。
(在执行前,请确保已保存工作表)
7.执行完毕后,该列中的每个数字下方的单元格都会被填充为相应的数字,直到遇到下一个数字
补充:
使用该方法后,最后一行数据(本例中的“结束”)内容不会往下填充,如果用于数据处理,最后一个数据后面没有内容的话,需要检查是否有填充最后一个单元格的内容(一般是没有的)。
因此,在使用该方法时建议最后一行加辅助内容,使用完成后再删除。