Range.AutoFilter是否仅使用最后一个条件?VBA
我有一个表,我想移到别处,我想删除一大部分数据(有相当多的空格或0我并不真正关心)。以下是迄今为止我对代码的了解:Range.AutoFilter是否仅使用最后一个条件?VBA,vba,autofilter,Vba,Autofilter,我有一个表,我想移到别处,我想删除一大部分数据(有相当多的空格或0我并不真正关心)。以下是迄今为止我对代码的了解: Dim srcRange As Range Dim copysheet As Worksheet Set copysheet = ActiveSheet Set srcRange = copysheet.range("B1:D1598") srcRange.AutoFilter Field:=3, Criteria1:=Array("#VALUE!", "Count", 0,
Dim srcRange As Range
Dim copysheet As Worksheet
Set copysheet = ActiveSheet
Set srcRange = copysheet.range("B1:D1598")
srcRange.AutoFilter Field:=3, Criteria1:=Array("#VALUE!", "Count", 0, Empty)
srcRange.Delete
使用此设置,它只删除空白,因此我使用以下变体对其进行了几次测试:
'this code will return only the 0's
Dim srcRange As Range
Dim copysheet As Worksheet
Set copysheet = ActiveSheet
Set srcRange = copysheet.range("B1:D1598")
srcRange.AutoFilter Field:=3, Criteria1:=Array("#VALUE!", "Count", 0)
'this code will return only the "count"'s
Dim srcRange As Range
Dim copysheet As Worksheet
Set copysheet = ActiveSheet
Set srcRange = copysheet.range("B1:D1598")
srcRange.AutoFilter Field:=3, Criteria1:=Array("#VALUE!", "Count")
因此,我得出的结论是,出于某种原因,自动筛选工具只根据我放入criteria1的最后一个标准进行筛选。有人能告诉我为什么吗
仅供参考-我的临时工作是运行4个筛选/删除命令,而不是一个,它工作正常-我只是想了解一下是什么原因导致了这一点
谢谢 您需要将
运算符:=xlFilterValues
添加到自动筛选调用中:
srcRange.AutoFilter Field:=3, Criteria1:=Array("#VALUE!", "Count"), Operator:=xlFilterValues
这将过滤标准1中提供的所有元素,这个问题非常古老,但我急需帮助。您发布的解决方案引发了运行时错误1004 range类的autofilter方法失败您是否检查了srcRange是否是包含整个表的有效范围?是的,我相信是这样,我尝试使用UsedRange(无论如何,表是工作表的唯一内容)、表左上角单元格的CurrentRegion(
.range(“A5”).CurrentRegion
),手动指定的范围(.range(“A5”、“E25”)
),并作为最后手段尝试使用选择