【问题标题】:Filter to exclude formula and blank过滤以排除公式和空白
【发布时间】:2015-03-11 01:15:38
【问题描述】:

过滤字段有很多数字、公式(结果为“-”)和空白。
如何编写 VBA 代码来过滤所有数字并排除“-”和空白。
“-”不是文本或字符串,而是公式的结果。

On Error Resume Next
ActiveSheet.ShowAllData
Range("G8").AutoFilter Filed:=7,  Criteria2:="=" 
Range("N8").AutoFilter Field:=14, Criteria1:="<>-", _
    Operator:=xlAnd, Criteria2:="<>"

【问题讨论】:

  • 感谢 L42 编辑我的问题。我英语不好
  • 是的,这不是问题,但请参阅StackOverflow question checklist,以改进您将来构建问题的方式。包含您尝试过的代码非常重要。
  • 啊,这就是问题所在。您仅在 Range("N8") 上工作,但您设置了 Field:=14。应该是Field:=1 还是打错字?顺便说一句,另一件事是您使用了On Error Resume Next,它忽略了错误。删除它会给你运行时错误 1004。
  • 是的,谢谢你,L42。以及如何发布代码,我的朋友?
  • 4 个空格,然后是代码。或者你可以在 SO 中使用 Ctrl + K 快捷键。

标签: vba filter


【解决方案1】:

试试这个:

Edit1:对于您的示例,它应该是:

Range("N8").AutoFilter Field:=1, Criteria1:="<>-" _
    , Criteria2:="<>", Operator:=xlAnd

这将根据公式过滤掉带有- 的空白和单元格。
请注意,您只使用了一个 Cell N8,它只有 1 个数据字段。

Edit2:另一种使其工作的方法是明确定义您正在处理的范围。

Dim r As Range
Set r = Sheets("Sheet1").Range("A1:N100") 'change to suit
r.AutoFilter Field:=14, Criteria1:="<>-" _
    , Criteria2:="<>", Operator:=xlAnd

这是你正在尝试的吗? HTH。

【讨论】:

  • 这不行,你和我有相同的代码:((。它只是过滤空白而不是过滤“-”
  • 真的,它对我有用。 :) 顺便说一句,请阅读我在您的问题中的评论并发布您尝试过的代码,编辑您的问题并添加代码。
  • 我用代码编辑了我的问题,但它并没有结束。请告诉我如何更好地发布代码
  • @kobebryant 我更新了我的答案。评论中的问题请参阅编辑 2。
猜你喜欢
  • 2020-08-24
  • 1970-01-01
  • 2020-08-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-12-07
  • 1970-01-01
相关资源
最近更新 更多