我正在开发一个对原始SQL数据进行排序和格式化的excel程序。我有一个宏,需要一段时间来运行数据,我想优化它。
此宏将遍历大约3,500行数据,并删除与我的参数不匹配的成员资格。
Sub MemDel()
Dim Row As Long
For Row = Cells(Rows.Count, 1).End(xlUp).Row To 2 Step -1
With Cells(RowToTest, 1)
If .Value <> "SILV" _
And .Value <> "AARP" _
And .Value <> "REA" _
And .Value <> "SILVFIT" _
Then _
Rows(Row).EntireRow.Delete
End With
Next Row
End Sub
发布于 2019-05-10 03:21:51
下面是你如何实现@BigBen的建议:
Sub MemDel()
Dim ws As Worksheet
Dim rDel As Range
Dim CheckCell As Range
Set ws = ActiveWorkbook.ActiveSheet
For Each CheckCell In ws.Range("A1", ws.Cells(ws.Rows.Count, "A").End(xlUp)).Cells
Select Case CheckCell.Value
Case "SILV", "AARP", "REA", "SILVFIT" 'do nothing
Case Else: If rDel Is Nothing Then Set rDel = CheckCell Else Set rDel = Union(rDel, CheckCell)
End Select
Next CheckCell
If Not rDel Is Nothing Then rDel.EntireRow.Delete
End Sub
https://stackoverflow.com/questions/56065984
复制相似问题