【发布时间】:2020-02-04 21:19:05
【问题描述】:
我想将我的表格减少到第二列中所有以“X”作为子字符串的行。 为此,我写了以下内容:
Sub reduce()
Dim lngRow As Long
With ActiveWorkbook.ActiveSheet
lngRow = .Cells(65536, 1).End(xlUp).Row
Do
pos = InStr(.Cells(lngRow, 2), "X")
If Not pos > 0 Then
.Rows(lngRow).Delete
End If
lngRow = lngRow - 1
Loop Until lngRow = 1
End With
End Sub
不幸的是,我收到了这个错误: https://docs.microsoft.com/en-us/office/vba/Language/Reference/User-Interface-Help/application-defined-or-object-defined-error
【问题讨论】:
-
For Each循环加上Union删除可能有助于加快速度。您的范围越大,由于删除行的收益,此解决方案就越好 -
为什么不在这里使用过滤器呢?文本过滤器 - 不包含“X” - 删除所有可见单元格。效率更高。