我是新的excel VBA编码。尝试通过选择SR变量中的范围过滤整个数据,但在SR变量时出错(运行时错误424)
也可以有人提供进一步的编码。我需要过滤掉SR变量的整个数据,方法是在D列中保留值(“ABC”,“DEF”),并删除(CTRL减)具有多个值的其余行,而不是我提到的。
下面是启动代码:
With ActiveSheet
Dim SR As Range
LR = Range("A" & Rows.Count).End(xlUp).Row
Set SR = Range("A1:AP" & LR)
SR.Select.AutoFilter
End With
1条答案
按热度按时间8i9zcol21#
为了使您的代码可工作,您必须使用以下代码:
这一个将根据您提到的标准过滤您的范围的区域。
为了做你解释的需要,我会给予你一些提示:
如果你想使用过滤器完成任务,OK。你必须创建另一个Range变量来保留可见的单元格,然后在初始SR行之间迭代并删除不在visibleCells范围内的行。
我想提一下,它不需要事先过滤范围才能进行这个操作。在行之间迭代(从最后一行到第一行)并根据您的条件,在列D:D中删除不匹配的行就足够了。
一段可行的代码,做你想做的事情:
为了更好地使用VisibleCells方法,我在相反的一侧进行了过滤。让所有其他行可见。如果您不使用
将显示一条消息,询问是否删除所有行...
下一个代码将删除不符合两个以上筛选条件的行。只有当筛选区域从第一行开始时,它才能正常工作。如果不符合,则必须通过添加第一个工作表行和筛选区域第一行的差异来进行更正:
在本例中,它显然是第一个(范围(“A1:...),但它可以是工作表中的任何范围...