首页 文章

通过VBA从Excel中删除单元格

提问于
浏览
0

我使用以下代码删除Col A中从A13到“最后一行”的所有数据 .

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实现的目标 .

很明显,我使用的代码由于某种原因没有对行进行干净的删除 . 请帮忙!

1 回答

  • 1

    如果我做对了,你想删除 A13 列中_2390__列中没有任何内容的所有数据,你可以尝试:

    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
    

    确保在发生错误之前复制文件 . 请注意,这应该在活动表上运行 .

相关问题