删除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,则
将查找这两个条件