使用自动过滤器过滤空白和数值

时间:2016-06-07 11:24:38

标签: excel-vba vba excel

在这里输入代码我对vba是全新的,我正在准备一个用于自动化日常活动报告的宏。报告的一部分是基于某些值过滤数据并将其复制到另一个工作簿中。 我被困在这里,需要你的帮助。 第x列有"客户名称",但可能有空白字段,日期和ID号。

我想出了过滤空白字段但无法找到如何过滤日期和身份证号码或一般数字。

这是我使用的代码:

range("A1").AutoFilter field:=21, Criteria1:=Array(""), Operator:=xlFilterValues

日期可以是2016年5月28日 身份证号码可以是292051102901

我搜索了类似的帖子但找不到它。

如果需要共享其他代码或使用示例文件,请告知我们。 Snippet of data

1 个答案:

答案 0 :(得分:0)

解决方法:
这有助于我避免插入另一列并按目标值过滤它。两个标准 1.包含'空白'的单元格将被格式化为特定颜色
2.包含介于'0'和&之间的值的单元格'999999999999'将被格式化为第一个标准的相同颜色,然后按颜色过滤 用过的宏录像机得到了代码: -

Columns("U:U").Select
Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlBetween, _ Formula1:="=0", Formula2:="=999999999999"

Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority

With Selection.FormatConditions(1).Font
.Bold = True 
.Italic = False 
.ThemeColor = xlThemeColorAccent6 
.TintAndShade = -0.499984740745262 
End With 
Selection.FormatConditions(1).StopIfTrue = False 
Selection.FormatConditions.Add Type:=xlExpression, Formula1:= "=LEN(TRIM(U1))=0"
Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority 
With Selection.FormatConditions(1).Font 
.Bold = True 
.Italic = False 
.ThemeColor = xlThemeColorAccent6 
.TintAndShade = -0.499984740745262 
End With 
Selection.FormatConditions(1).StopIfTrue = False 
range("U4").Select 
Selection.AutoFilter range("A1").AutoFilter field:=21, Criteria1:=RGB(151, 71, 6), operator:=xlFilterFontColor