我必须从上到下滚动一列(实际上是两列,但如果我能得到一列,我就可以管理)并替换0
或上面有单元格值的空白。这是我到目前为止所拥有的(它不起作用):
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
将返回上面单元格的值。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)