excel - 如果列中没有值,如何删除行?
问题描述
如果某列中没有值,我正在尝试删除表中的行。
我使用了一种代码,如果缺少一个单元格值,则删除行,但是如果单元格在某一列中不包含值,我想删除行。
例如,如果 Column G Row 5 中没有值,那么我想删除整行。
Sub Test2()
Dim rng As Range
On Error Resume Next
Set rng = Range("Table3").SpecialCells(xlCellTypeBlanks)
On Error GoTo 0
If Not rng Is Nothing Then
rng.Delete Shift:=xlUp
End If
End Sub
这将删除具有任何类型的缺失单元格值的所有行。
解决方案
两个小改动:
Sub Test2()
Dim rng As Range
On Error Resume Next
Set rng = Range("G:G").SpecialCells(xlCellTypeBlanks)
On Error GoTo 0
If Not rng Is Nothing Then
rng.EntireRow.Delete Shift:=xlShiftUp
End If
End Sub
编辑:
如果您想直接使用表,请考虑迭代ListRows
相关表,如下所示:
Sub Test2()
Dim myTbl As ListObject
Set myTbl = Sheet1.ListObjects("table3") ' change sheet as necessary
Dim indx As Long
indx = myTbl.ListColumns("ColumnName").Index
Dim rngToDelete As Range
Dim myRw As ListRow
For Each myRw In myTbl.ListRows
If IsEmpty(myRw.Range(1, indx).Value) Then
If rngToDelete Is Nothing Then
Set rngToDelete = myRw.Range
Else
Set rngToDelete = Union(rngToDelete, myRw.Range)
End If
End If
Next myRw
If Not rngToDelete Is Nothing Then
rngToDelete.Delete Shift:=xlShiftUp
End If
End Sub
注意:从技术上讲,它是xlShiftUp
,而不是xlUp
。
推荐阅读
- html - 是否可以在 django 中循环自定义模型表单?
- angular - Angular 应用程序中的状态是什么意思?
- android - Firebase 使用预先构建的 UI 登录 Facebook 登录无效;显示登录错误:登录此应用程序时出错
- ios - 如何将 SCNNode 背景颜色设置为清除而不影响它的子几何
- java - 如何将 IBM Watson Assistant 聊天机器人添加到网页中?
- php - mysqli 准备的 UPDATE 语句不更新数据库中的值
- html - 更改平板电脑和手机视图上的内容
- javascript - 根据流中的值暂停 RxJS 流
- postgresql - How do I use the postgres crate to receive table modification events from PostgreSQL?
- angular - How to fix Google Maps Platform rejected your request. Invalid request. Unexpected parameter 'amp%3Bkey'