如何解决用于条件IsLetter的VBA自动过滤器/任何文本
我有一个列需要作为自由文本子例程的一部分进行过滤。我需要过滤掉包含各种文本的所有单元格。我正在使用VBA代码
With rng
.AutoFilter Field:=1,Criteria:= "cannot find solution - need [A-Za-z]"
.Offset(1,0).Resize(.Rows.Count - 1).SpecialCells (xlCellTypeVisible).Rows.Delete
代码本身运行良好,我只是无法锻炼如何将标准设置为任何字母
有没有办法做到这一点?
谢谢您的建议。
解决方法
您可以通过VBA设置与Excel中相同的过滤器,因此,您首先应尝试在Excel中找到适合您的过滤器设置。
找到后,删除过滤器并在再次设置过滤器时记录宏-这将向您展示如何使用VBA进行设置。
在您的情况下,我设置了一个自定义过滤器:单击该列上的过滤器按钮,选择“数字过滤器”或“文本过滤器(根据Excel猜测的是该列的主要数据类型显示),然后选择“自定义过滤器”。
在此处选择“包含”,然后输入?
作为搜索值。
如果满足您的需要,这是VBA中的代码:
.AutoFilter Field:=1,Criteria1:="=*?*",Operator:=xlAnd
如果由于过滤器更加复杂而无法满足您的需要,那么我唯一的想法就是创建一个帮助器列,编写一个返回True
或False
的UDF,具体取决于值是否显示,并在该帮助器列上进行过滤(您可以在该UDF中使用正则表达式)。
或手动循环遍历您的数据并在代码中确定适合的行-但删除数据时要格外小心,要么向后循环,要么一次建立并集并删除-有关SO的大量示例。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。