删除VBA中空单元格的整行

删除VBA中空单元格的整行,vba,excel,Vba,Excel,我正在尝试删除每一行,其中的特定列正好是我的工作表中的第一列,该列的单元格为空。我运行了以下代码: For Y = 2 To 50000 If IsEmpty(Cells(Y, 1)) = True Then Rows(Y).EntireRow.Delete End If Next Y 然而,一切都没有改变。不知为什么我把代码弄错了吗?将第3行的工作表名称更改为您的工作表。这有一个动态循环(它将从A2循环到列a中最后使用的行),并将要删除的行取整。循环完成后,它将立即删除所有行 Opt

我正在尝试删除每一行,其中的特定列正好是我的工作表中的第一列,该列的单元格为空。我运行了以下代码:

For Y = 2 To 50000
If IsEmpty(Cells(Y, 1)) = True Then
    Rows(Y).EntireRow.Delete
End If
Next Y

然而,一切都没有改变。不知为什么我把代码弄错了吗?

将第3行的工作表名称更改为您的工作表。这有一个动态循环(它将从
A2
循环到
列a
中最后使用的行),并将要删除的行取整。循环完成后,它将立即删除所有行

Option Explicit

Sub DeleteMe()

Dim ws As Worksheet: Set ws = ThisWorkbook.Sheets("Sheet1")

Dim SearchRange As Range, CurrentCell As Range, DeleteMe As Range
Set SearchRange = ws.Range("A1:A" & ws.Range("A" & ws.Rows.Count).End(xlUp).Row)

For Each CurrentCell In SearchRange
    If CurrentCell = "" Then
        If DeleteMe Is Nothing Then
            Set DeleteMe = CurrentCell
        Else
            Set DeleteMe = Union(DeleteMe, CurrentCell)
        End If
    End If
Next CurrentCell

If Not DeleteMe Is Nothing Then DeleteMe.EntireRow.Delete


End Sub
你也可以试试这个

Sub deletecells()

Dim ws As Worksheet: Set ws = ThisWorkbook.Sheets("Sheet1")
Dim SearchRange As Range, CurrentCell As Range, DeleteMe As Range
Set SearchRange = ws.Range("A1:A" & ws.Range("A" & ws.Rows.Count).End(xlUp).Row)

ws.Range(SearchRange.Address).SpecialCells(xlCellTypeBlanks).Select
Selection.EntireRow.delete
End Sub
如果您的要求不同,请告诉我


谢谢

如果你想做这样的循环,你需要向后删除。如果你的代码在右边的表格中,
如果是空的(单元格(Y,1)),那么
而不是你所拥有的。默认测试为
True
,您的语句将提供该测试(
如果为True,则为
),首先感谢Urderboy的响应。我使用了步骤-1,但仍然不走运。这一行有一个不匹配的错误:Set SearchRange=ws.Range(“A”&ws.Rows.Count)。End(xlUp)。Row。。。我想它是单词Row,所以我把它改成Rows。然后,在我运行它之后,没有任何事情发生在手机上,就像魅力一样。另一个问题:如果我的单元格的值为-1怎么办?如何删除整行?
如果CurrentCell=”“或CurrentCell<0,则
将查找这两个条件