如何让Excel自动填充上一行的内容到下面的一个或多个空行中?
针对这样的问题,您可以使用复制粘贴的办法;但是,本人遇到的问题是,数据量有接近一万行,并且,部分行有内容,部分行去没有内容。
那么,如此多变的数据,我们如何才能做到,一次性让空的单元格,都分别填充其上方有数据的单元格内容呢?
我首先VBA,下面,我们先看下表吧!
认真瞧一瞧,AB两列,间断的或无规律的出现,部分单元格有内容,部分单元格是没有内容的,并且,整个表格的数据量,接近一万行。现在,我们要做的就是,如何让这么多的空单元格,自动填充上其上方有内容的数据呢?
我们可以这样来做,在表格中增加一个按钮,如下图!假设增加一个标题为“自动填充AB列空的”。
只要一点击该功能按钮,那么,AB两列所有的空的单元格则自动填上该填写的内容。
好了,界面就说到这个地方,下面我们直接参阅代码吧!按钮的代码如下:
Private Sub CommandButton1_Click()
Dim MyOldValue1 As String
Dim MyOldValue2 As String
For i = 1 To Worksheets.Count
MyOldValue1 = Trim(Worksheets(i).Cells(2, 1).Value)
MyOldValue2 = Trim(Worksheets(i).Cells(2, 2).Value)
Next i
For i = 1 To Worksheets.Count
For j = 3 To Sheets(i).UsedRange.Rows.Count
If (Trim(Worksheets(i).Cells(j, 1).Value) = "") Then
Worksheets(i).Cells(j, 1).Value = MyOldValue1
Else
MyOldValue1 = Worksheets(i).Cells(j, 1).Value
End If
If (Trim(Worksheets(i).Cells(j, 2).Value) = "") Then
Worksheets(i).Cells(j, 2).Value = MyOldValue2
Else
MyOldValue2 = Worksheets(i).Cells(j, 2).Value
End If
Next j
Next i
End Sub
部分代码解释:
For i = 1 To Worksheets.Count'此自动填充功能,对工作薄中的所有工作表都有效。
For j = 3 To Sheets(i).UsedRange.Rows.Count'针对每个工作表实现自动填充。