程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Excel VBA 过滤数据而不删除空格大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决Excel VBA 过滤数据而不删除空格?

开发过程中遇到Excel VBA 过滤数据而不删除空格的问题如何解决?下面主要结合日常开发的经验,给出你关于Excel VBA 过滤数据而不删除空格的解决方法建议,希望对你解决Excel VBA 过滤数据而不删除空格有所启发或帮助;

我有一个关于在 Excel / VBA 中过滤列中的文本的问题。这是我的起点(不能发布图片):

column1 第2列 第3列
值1 bla bla
bla bla
value2 bla bla
值1 bla bla
空的 bla bla
value2 bla bla

我想要做的是在“column1”上为“value1”使用文本过滤器,以便结果包括 column1 中具有“空”值的行。过滤结果应如下所示:

column1 第2列 第3列
值1 bla bla
bla bla
值1 bla bla
空的 bla bla

但是,当我在 Excel 中的 column1 上为“value1”使用普通文本过滤器时,我得到了这个结果,而 column1 中没有“空”的行:

column1 第2列 第3列
值1 bla bla
值1 bla bla

我缺乏的是如何在 Excel / VBA 中完成此操作的总体思路。以某种方式,空行应该在某种范围内“连接”到具有“value1”的行? 非常感谢任何建议!

解决方法

使用宏记录器,然后进行一些清理:

Sub Macro1()
    With Range("A1:C7")
        .AutoFilter
        .AutoFilter Field:=1,Criteria1:="=value1",_
            Operator:=xlOr,Criteria2:="="
    End With
End Sub
,

您可以使用 VBA 设置与使用 Excel 中的过滤器设置的过滤器相同的过滤器。使用宏记录器揭示语法。

假设要过滤A列到C列的数据,可以使用

ActiveSheet.Range("$A:$C").AutoFilter Field:=1,_ 
    Operator:=xlOr,Criteria2:="="

如您所见,对空白的搜索是使用过滤条件 "="

如果您想查看多个值的所有值加上空格,请使用

ActiveSheet.Range("$A:$C").AutoFilter Field:=1,_
      Criteria1:=Array("value1","value2","="),Operator:=xlFilterValues

您将所有想要查看的值放入一个数组中,然后将该数组作为参数传递给 Criteria1。同样,空白由 "=" 表示。

更新 如果您想使用自动过滤器显示具有特定值 空白 前一行具有此值的所有行,您可以使用辅助列解决此问题。假设您的条件在 A 列中,在辅助列中放置一个公式:=IF(A2="",A1,A2) 并在此列上进行过滤。

如果您不需要辅助列,则需要编写一个 VBA 例程来逐行检查是否显示或隐藏该行。

大佬总结

以上是大佬教程为你收集整理的Excel VBA 过滤数据而不删除空格全部内容,希望文章能够帮你解决Excel VBA 过滤数据而不删除空格所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。