繁体   English   中英

自动筛选和停止宏中没有空白字段时的Excel VBA消息框

[英]Excel VBA Message Box when there are no blank fields in an autofilter and stop macro

我有一个简单的宏,可将一个“自动过滤器”列(字段4)设置为特定值,第二个“自动过滤器”列(字段5)仅显示空白条目。 有时没有空白条目,在这种情况下,有没有办法停止过滤器功能并提供一个消息框通知没有找到空白条目?

当我的代码当前结束时,实际上没有空白要过滤的列(字段5)看起来就像应用了自动过滤器来查看下拉箭头状态的变化。 完整的非空白单元仍然可见。

Sub PoPODRecvdStatus()
'
' PoPODRecvdStatus Macro
' Filters Courier/Status by POD Received and Consignment to Blank
'
Application.ScreenUpdating = False
'
ActiveSheet.Range("$A$1:$K$12543").AutoFilter Field:=4, Criteria1:= _
    "POD RECEIVED"
ActiveSheet.Range("$A$1:$K$12543").AutoFilter Field:=5, Criteria1:="<>"
Application.ScreenUpdating = True
End Sub

根据评论,我了解您可能想要类似的内容。 如果在POD RECEIVED上进行过滤时,如果没有空白单元格,则代码将显示一个消息框,并显示这些行,否则它将显示POD RECEIVED的“空白”

Sub PoPODRecvdStatus()
'
' PoPODRecvdStatus Macro
' Filters Courier/Status by POD Received and Consignment to Blank
'
    Application.ScreenUpdating = False
    '
    ActiveSheet.Range("$A$1:$K$12543").AutoFilter Field:=4, Criteria1:= _
                                                  "POD RECEIVED"
    ActiveSheet.Range("$A$1:$K$12543").AutoFilter Field:=5, Criteria1:="="

    Dim rng As Range
    Set rng = ActiveSheet.AutoFilter.Range
    If rng.Columns(5).SpecialCells(xlCellTypeVisible).Count - 1 = 0 Then
        MsgBox "No blank cells in column 5 for POD RECEIVED", vbOKOnly, "POD_RECEIVED"
        ActiveSheet.Range("$A$1:$K$12543").AutoFilter Field:=5, Criteria1:="<>"
    End If
    Application.ScreenUpdating = True

End Sub

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM