EXCEL用VBA筛选数字和日期及介于某某之间
Sub一键取消各列筛选()ActiveSheet.ListObjects("接单记录表").Range.AutoFilterField:=1ActiveSheet.Lis...
Sub 一键取消各列筛选()
ActiveSheet.ListObjects("接单记录表").Range.AutoFilter Field:=1
ActiveSheet.ListObjects("接单记录表").Range.AutoFilter Field:=2
ActiveSheet.ListObjects("接单记录表").Range.AutoFilter Field:=3
Range("A3:C3").Select
Selection.ClearContents
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$3" Or Target.Address = "$B$3" Or Target.Address = "$C$3" Then
If Target.Value = "" Then '判断为空时...
Application.EnableEvents = False '让事件失效
ActiveSheet.ListObjects("接单记录表").Range.AutoFilter Field:=Target.Column - 1 '取消筛选
Application.EnableEvents = True '让事件失效
Else
Selection.Copy '拷贝
ActiveSheet.ListObjects("接单记录表").Range.AutoFilter Field:=Target.Column - 1, Criteria1:="=*" & Target.Value & "*", Operator:=xlAnd '筛选
End If
End If
End Sub
上述代码是我现在用来做筛选的,这样(Criteria1:="=*" & Target.Value & "*", Operator:=xlAnd)情况下可以筛选文本包含,不能筛选数字,我想如何改下公式既能筛选文本又能筛选数字,而且当A3输入50,A4为空时只筛选出结果为50的,A3为50,A4为500时筛选所有50-500的结果,当B3输入2015-01-01只筛选出1月1日这一天的结果,当B4数据为2015-07-15时筛选出1月1日至7月15日的结果,不知是否描述清楚,盼解答,谢谢! 展开
ActiveSheet.ListObjects("接单记录表").Range.AutoFilter Field:=1
ActiveSheet.ListObjects("接单记录表").Range.AutoFilter Field:=2
ActiveSheet.ListObjects("接单记录表").Range.AutoFilter Field:=3
Range("A3:C3").Select
Selection.ClearContents
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$3" Or Target.Address = "$B$3" Or Target.Address = "$C$3" Then
If Target.Value = "" Then '判断为空时...
Application.EnableEvents = False '让事件失效
ActiveSheet.ListObjects("接单记录表").Range.AutoFilter Field:=Target.Column - 1 '取消筛选
Application.EnableEvents = True '让事件失效
Else
Selection.Copy '拷贝
ActiveSheet.ListObjects("接单记录表").Range.AutoFilter Field:=Target.Column - 1, Criteria1:="=*" & Target.Value & "*", Operator:=xlAnd '筛选
End If
End If
End Sub
上述代码是我现在用来做筛选的,这样(Criteria1:="=*" & Target.Value & "*", Operator:=xlAnd)情况下可以筛选文本包含,不能筛选数字,我想如何改下公式既能筛选文本又能筛选数字,而且当A3输入50,A4为空时只筛选出结果为50的,A3为50,A4为500时筛选所有50-500的结果,当B3输入2015-01-01只筛选出1月1日这一天的结果,当B4数据为2015-07-15时筛选出1月1日至7月15日的结果,不知是否描述清楚,盼解答,谢谢! 展开
2个回答
展开全部
其他都好办就是同时筛选包含50到500的文本我没办法,另外,Field:=Target.Column - 1 是什么意思?筛选前一列吗?Target是a3时怎么办呢
追问
筛选50至500的数字,不是文本,上面代码是筛选和取消筛选当前单元格所有在的列。您可以忽略这些代码,用别的方式也行。
追答
筛选当前列对话不应该-1
同时筛选包含文本和数字:
Criteria1:="=*" & Target.Value & "*", Criteria2:=Target.Value, Operator:=xlOr
筛选范围:
Criteria1:=">=" & Target.Value , Criteria2:="<=" & Target.Offset(1,0).Value, Operator:=xlAnd
来自:求助得到的回答
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询