如何使用VBA检查Excel中的列是否相同时是否所有数字

时间:2017-12-14 00:04:12

标签: excel vba excel-vba

Below is my code 

Sub DeleteUneccessarySerial()
Dim rng As Range
Dim myNum As Long
myNum = 1
Set rng = Range("F:F")
Columns("A:I").Sort key1:=Range("I:I"), order1:=xlAscending, Header:=xlYes
Range("$A1:I200").AutoFilter Field:=9, Criteria1:="Checked"
If WorksheetFunction.CountIf(rng, myNum) = rng.Count Then MsgBox ("All the same!")

Range("A:B,F:F,G:H").Delete
End Sub

如果F 中存在 1 以外的任何数字,我希望停止运行宏。如果F 中的所有数字都是“ 1 ”,则继续运行代码。

我认为问题是下面的最后一段代码 “If WorksheetFunction.CountIf(rng, myNum) = rng.Count Then MsgBox ("All the same!")

1 个答案:

答案 0 :(得分:0)

您需要重新构建If块以确定程序流,并使用Exit Sub退出该过程,按照以下代码:

Sub DeleteUneccessarySerial()
    Dim rng As Range
    Dim myNum As Long
    myNum = 1
    Set rng = Range("F:F")
    Columns("A:I").Sort key1:=Range("I:I"), order1:=xlAscending, Header:=xlYes
    Range("$A1:I200").AutoFilter Field:=9, Criteria1:="Checked"
    If WorksheetFunction.CountIf(rng, myNum) = rng.Count Then
        MsgBox ("All the same!")
        Exit Sub
    End If
    Range("A:B,F:F,G:H").Delete
End Sub