如果过滤器中没有值,则退出子 [英] If there is no value in a filter then exit sub
问题描述
我正在运行一个宏,它根据用户输入的数字进行过滤。然后获取该数字并根据该值过滤列表。我需要一个验证,如果用户输入一个不在列表中的数字,它将退出宏。我觉得我很接近,但我是VBA新手,所以我一直陷入困境。
谢谢!
'基于过滤器(新版本)。选择
part =范围(B4)。值
表格(PN_List)。选择
列(D :E)。选择
Selection.EntireColumn.Hidden = False
ActiveSheet.Range($ A $ 1:$ K $ 3000)。AutoFilter Field:= 1,Criteria1:= part
如果ActiveSheet.Range($ A $ 1:$ K $ 3000)。AutoFilter Field = 1,Criteria1 =Then
MsgBoxPart number not found please try again。,vbOKOnly + vbExclamation,
退出子
结束如果
<$选择
part = Range(B4)。Value
Sheets(PN_List)。选择
If Application.Countif([A1:A3000],部分) 1然后
MsgBoxPart number not found please try again。,vbOKOnly + vbExclamation,Entry Error
Exit Sub
End If
Sheets(PN_List)。Columns (D:E)。EntireColumn.Hidden = False
ActiveSheet.Range($ A $ 1:$ K $ 3000)。AutoFilter Field:= 1,Criteria1:= part
I am running a macro where it filters based on a number that the user has entered. It then takes that number and filters a list based on that value. I need a validation where if a user put in a number that is not on the list it will exit the macro. I think I am close but I am new to VBA so I keep getting stuck. Any help would be awesome!
Thanks!
'Filter based on user entry
Sheets("New Revision ").Select
part = Range("B4").Value
Sheets("PN_List").Select
Columns("D:E").Select
Selection.EntireColumn.Hidden = False
ActiveSheet.Range("$A$1:$K$3000").AutoFilter Field:=1, Criteria1:=part
If ActiveSheet.Range("$A$1:$K$3000").AutoFilter Field=1, Criteria1="" Then
MsgBox "Part number not found please try again.", vbOKOnly + vbExclamation, "Entry Error"
Exit Sub
End If
Sheets("New Revision ").Select
part = Range("B4").Value
Sheets("PN_List").Select
If Application.Countif([A1:A3000], part) < 1 Then
MsgBox "Part number not found please try again.", vbOKOnly + vbExclamation, "Entry Error"
Exit Sub
End If
Sheets("PN_List").Columns("D:E").EntireColumn.Hidden = False
ActiveSheet.Range("$A$1:$K$3000").AutoFilter Field:=1, Criteria1:=part
这篇关于如果过滤器中没有值,则退出子的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!