【发布时间】:2017-03-14 10:22:09
【问题描述】:
我有这段代码,我想遍历所有工作表并根据工作表中任何位置的“已完成”值删除整行...这运行但仅在活动工作表上,我想不出一个好方法让它遍历每张纸直到完成......非常感谢任何帮助!太棒了
Private Sub TestDeleteRows()
Dim rFind As Range
Dim rDelete As Range
Dim strSearch As String
Dim sFirstAddress As String
strSearch = "Completed"
Set rDelete = Nothing
Application.ScreenUpdating = False
With Sheet1.Columns("A:AO")
Set rFind = .Find(strSearch,
LookIn:=xlValues, LookAt:=xlPart, SearchDirection:=xlNext, MatchCase:=False)
If Not rFind Is Nothing Then
sFirstAddress = rFind.Address
Do
If rDelete Is Nothing Then
Set rDelete = rFind
Else
Set rDelete = Application.Union(rDelete, rFind)
End If
Set rFind = .FindNext(rFind)
Loop While Not rFind Is Nothing And rFind.Address <> sFirstAddress
rDelete.EntireRow.Delete
End If
End With
Application.ScreenUpdating = False
End Sub
【问题讨论】:
-
可以更改为执行以下操作:根据列名和单元格值删除一行?或多个列名和单元格?例如:我想在名为“状态”的列中删除任何值为“完成”的内容,但我可能还想在名为“第二状态”的列中删除任何“完成”的内容..ty