从上到下滚动列,并用上面的单元格中的值replace0

我必须从上到下滚动列(实际上是两个,但是如果我可以让我去pipe理),并用上面的单元格值replace0或空格。 这是我到目前为止(它不起作用):

 Sub ReplaceZeros() Application.ScreenUpdating = False Application.Calculation = xlCalculationManual lr = Cells(Rows.Count, "A").End(xlUp).Row For i = lr To 2 Step 7000 If Cells(i, "A").Value = 0 Then Cells(i, "A").Replace_ What: 0, Replacement:= "cell(i-1,"A").value,_ SearchOrder:=xlByColumns, MatchCase:=True Next i Application.Calculation = xlCalculationAutomatic Application.ScreenUpdating = True End Sub 

很近:

 Sub ReplaceZeros() Application.ScreenUpdating = False Application.Calculation = xlCalculationManual Dim lr As Long Dim i As Long Dim ws As Worksheet Set ws = ActiveSheet With ws lr = .Cells(.Rows.Count, "A").End(xlUp).Row For i = 2 To lr If .Cells(i, "A").Value = 0 Then .Cells(i, "A").Value = .Cells(i - 1, "A").Value Next i End With Application.Calculation = xlCalculationAutomatic Application.ScreenUpdating = True End Sub 

注意:你已经从底部开始的循环上去了,这样可以,但是如果你连续有两个“0”,那么第二个将保持为零,再加step 7000使得循环每次跳过7000行。

然后,如果你想要的是上面的值使用Cells(i-1,"A").value将返回直接在上面的单元格的值。