我正在使用下面的代码从A13中删除所有数据到Col A中的“最后一行”。
Dim lastRowA As Long
With Application
.Calculation = xlCalculationManual
.ScreenUpdating = False
lastRowA = .Cells(.Rows.Count, "A").End(xlUp).Row
Range("A13:A" & lastRowA).Select
For i = Selection.Rows.Count To 13 Step -1
If WorksheetFunction.CountA(Selection.Rows(i)) = 0 Then
Selection.Rows(i).EntireRow.Delete
End If
Next i
.Calculation = xlCalculationAutomatic
.ScreenUpdating = True
End With
它正在清除预期的值。但是,这并不删除这些行。也就是说,即使这些单元格中没有数据,我仍然可以向下滚动到10000行(通过滚动条)。但是,单元格中最后一行包含数据的行是第12行。
如果我选择所有这些单元格,请右键单击并删除这些行+保存工作表,我将无法再通过scroolbar访问第10000行。这就是我要通过VBA实现的目标。
很显然,由于某些原因,我使用的代码没有对行进行干净删除。请帮忙!
答案 0 :(得分:1)
如果我做对了,并且您要删除范围“ A13
”中“ A”列中没有任何内容的所有数据,则可以尝试:
Sub delete()
Application.Calculation = xlCalculationManual
Application.ScreenUpdating = False
On Error Resume Next
Range("A13:A" & Rows.Count).SpecialCells(xlCellTypeBlanks).EntireRow.delete
On Error GoTo 0
ActiveWorkbook.Save
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
End Sub
确保在发生问题之前先进行文件副本。 请注意,这预计将在活动表上运行。