Excel VBA:如果等于不,则显示错误消息

时间:2016-03-21 20:55:11

标签: excel vba for-loop foreach

无法弄清楚代码的错误。

我有一个代码,我需要检查某些表格中是否可以找到某些产品'订单前的ID。

Private Sub Pardot_Click()

Dim xlRange As Range
Dim xlCell As Range
Dim xlSheet As Worksheet
Dim valueToFind As String

valueToFind = pardID
Set xlSheet = ActiveWorkbook.Worksheets("Noliktava")
Set xlRange = xlSheet.Range("A1:A500")

For Each xlCell In xlRange
    If xlCell.Value <> valueToFind Then
        MsgBox ("This product wasn't found in the database - ID: " & pardID.Text)
        Exit Sub
    End If
Next xlCell

End Sub

基本上,我启动用户表单并在框中输入ID(即1),然后单击&#34;好的&#34;或者其他什么,如果在范围内找不到ID(ID:1)我希望它显示错误消息。

如果我更改&lt;&gt;代码,则代码有效to =,但那不是必需的结果。

1 个答案:

答案 0 :(得分:3)

如果不过多地更改代码,并且可能节省一些时间,而不是检查范围中的每个单元格,只需使用CountIf()?

Private Sub Pardot_Click()

Dim xlRange As Range
Dim xlCell As Range
Dim xlSheet As Worksheet
Dim valueToFind As String

valueToFind = pardID
Set xlSheet = ActiveWorkbook.Worksheets("Noliktava")
Set xlRange = xlSheet.Range("A1:A500")

If WorksheetFunction.CountIf(xlRange,valuetoFind) = 0 then 
    msgbox "This product wasn't found in the database - ID: " & parId.textEnd 
End If

End Sub

注意:这将查找 完全 用户插入的文本。如果它可以在字符串中的某个位置使用通配符(即搜索&#34;狗&#34;在&#34;狗狗&#34;,&#34;狗食&#34;,&#34;狗&#34; )