大佬教程收集整理的这篇文章主要介绍了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,请注明来意。