过滤以排除公式和空白
Filter to exclude formula and blank
筛选字段有很多数字、公式(结果为“-”)和空白。
如何编写 VBA 代码来过滤所有数字并排除“-”和空白。
“-”不是文本或字符串,它是公式的结果。
On Error Resume Next
ActiveSheet.ShowAllData
Range("G8").AutoFilter Filed:=7, Criteria2:="="
Range("N8").AutoFilter Field:=14, Criteria1:="<>-", _
Operator:=xlAnd, Criteria2:="<>"
试试这个:
Edit1: 对于你的例子,它应该是:
Range("N8").AutoFilter Field:=1, Criteria1:="<>-" _
, Criteria2:="<>", Operator:=xlAnd
这将过滤掉公式结果为 -
的空白和单元格。
请注意,您只使用一个只有 1 个数据字段的 Cell N8。
Edit2: 另一种使其工作的方法是明确定义您正在处理的范围。
Dim r As Range
Set r = Sheets("Sheet1").Range("A1:N100") 'change to suit
r.AutoFilter Field:=14, Criteria1:="<>-" _
, Criteria2:="<>", Operator:=xlAnd
这是您要尝试的吗? HTH.
筛选字段有很多数字、公式(结果为“-”)和空白。
如何编写 VBA 代码来过滤所有数字并排除“-”和空白。
“-”不是文本或字符串,它是公式的结果。
On Error Resume Next
ActiveSheet.ShowAllData
Range("G8").AutoFilter Filed:=7, Criteria2:="="
Range("N8").AutoFilter Field:=14, Criteria1:="<>-", _
Operator:=xlAnd, Criteria2:="<>"
试试这个:
Edit1: 对于你的例子,它应该是:
Range("N8").AutoFilter Field:=1, Criteria1:="<>-" _
, Criteria2:="<>", Operator:=xlAnd
这将过滤掉公式结果为 -
的空白和单元格。
请注意,您只使用一个只有 1 个数据字段的 Cell N8。
Edit2: 另一种使其工作的方法是明确定义您正在处理的范围。
Dim r As Range
Set r = Sheets("Sheet1").Range("A1:N100") 'change to suit
r.AutoFilter Field:=14, Criteria1:="<>-" _
, Criteria2:="<>", Operator:=xlAnd
这是您要尝试的吗? HTH.