查找与其他字符一起键入的特定string

我试图validation一个数字(7)或string('7')是否存在于其中一列,并且如果他们确实返回一个消息框。 例如,请考虑以下数据:

Name Cod A 7 A 3 B 4 C 7;3 D 7 3 D 7, 3 F 7 - 3 F 5 

我可以在Cod列中find数字7,但不能检查它是否与其他数字和符号(如逗号,短划线,分号等)一起出现。以下代码适用于单元格B2:

 Dim N As Range Sub Find_7_string() msg = "" For Each N In Range("A2", Range("A2").End(xlDown)) If N.Offset(, 1) = 7 Then msg = msg & "There should not be 7 in column Cod" & vbLf Exit For End If Next N If Len(msg) > 1 Then MsgBox msg End If End Sub 

但它不适用于单元格B5,B6,B7和B8。

如果字符是与其他字符一起键入的字符,我怎样才能validation字符“7”?

你可以使用Instr函数,像这样:

 Sub Find_7_string() Dim N As Range Dim msg As String msg = "" For Each N In Range("A2", Range("A2").End(xlDown)) If InStr(N.Offset(, 1), 7) Then msg = msg & "There should not be 7 in column Cod" & vbLf Exit For End If Next N If Len(msg) > 1 Then MsgBox msg End If End Sub 

请注意,也是会发现77,7382等

手册

  • 数据 ….. 筛选器
  • 点击Filter下拉菜单
  • 号码pipe理员 …… 自定义filter
  • 包含 7 Or 等于 7

VBA

 Sub Findem() Dim rng1 As Range ActiveSheet.AutoFilterMode = False Set rng1 = Range([b1], Cells(Rows.Count, "B").End(xlUp)) rng1.AutoFilter Field:=1, Criteria1:="=*7*", Operator:=xlOr, Criteria2:="=7" End Sub