如果过滤器中没有值,则退出子 [英] If there is no value in a filter then exit sub

查看:194
本文介绍了如果过滤器中没有值,则退出子的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在运行一个宏,它根据用户输入的数字进行过滤。然后获取该数字并根据该值过滤列表。我需要一个验证,如果用户输入一个不在列表中的数字,它将退出宏。我觉得我很接近,但我是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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆