拆分/填充顶部和底部值的中间空白

我有一个由for循环运行的列。 有两行之间有空格,当第一个命中另一个(因为它检查值=“”),它停止。

它看起来像这样:

-First person -Second person 

它应该是这样的:

 -First person -First person -First person -First person -First person -Second person -Second person -Second person -Second person 

码:

 Sub FyllUtKjoenn() Dim sluttrad As Integer sluttrad = Cells(3000, 1).End(xlUp).Row For x = 5 To sluttrad If Cells(x, 1).Value = "" Then Cells(x, 1).Value = Cells(x - 1, 1).Value End If Next x End Sub 

我不认为你会需要一个循环; 只是一点点math。 虽然你不会注意到工作表的一小部分,循环通过单个单元格的较大部分会减慢你的速度。

 Sub fill_Intermediate() Dim rw1 As Long, rw2 As Long With Worksheets("sheet5") rw1 = 5 rw2 = .Cells(Rows.Count, 1).End(xlUp).Row 'alternate 'rw2 = .Cells(rw1, 1).End(xlDown).Row .Cells(rw1, 1).Resize(CLng((rw2 - rw1) / 2) + 1, 1).FillDown .Cells(rw2, 1).Offset(-CLng((rw2 - rw1) / 2) + 1, 0).Resize(CLng((rw2 - rw1) / 2), 1) = _ .Cells(rw2, 1).Value End With End Sub 

first_second_person

sluttrad总是1,所以改变sluttrad = Cells(3000, 1).End(xlUp).Row 。 尝试

 sluttrad = Cells.Find(What:="*", After:=[A1], _ SearchOrder:=xlByRows, _ SearchDirection:=xlPrevious).Row