Excel VBA-检查列中的单元格不包含字符串8254并显示MsgBox



我正在尝试将一些vba代码放在一起,以检查从L2到最后一行数据(直到找到一个空白单元格(的每个单元格中的内容是否不包含字符串"8254"。L列中的数字代码长27个字符,并且总是包含"8254’作为最后4位数字。因此,如果我能在每个单元格中验证"8254",那么格式/代码是正确的(有些数字代码是不正确的,需要调查(。如果一个或多个单元格中不存在字符串"8254",则显示MsgBox,警告列中存在错误。

我一直在尝试让下面的代码工作,但我是vba的新手,需要一些帮助

有人知道我该怎么做吗?

感谢

Sub CheckCodes()
'Check column 'L' for Non Standard Number Codes
Dim code As Range
 For Each code In Range("L2", Range("L" & Rows.Count).End(xlUp))
    If VBA.Right$(VBA.Trim$(code), 4) <> "8254" Then
        MsgBox "Non Standard Number Codes Found!  " & vbNewLine & "Check Number Codes  ", , "ADVISORY!"
        Exit Sub
    End If
Next code
End Sub

我发现问题是代码检查了L1000行的一些空白单元格并导致了问题。我根据以下内容进行了修改,所以它只检查数据的底部,并且运行良好。感谢您的帮助和评论。

Sub CheckCodes()
'Check column 'L' for Non Standard Number Codes
Dim code As Range
 For Each code In Range("L2", Range("L" & Rows.Count).End(xlUp))
    If VBA.Right$(VBA.Trim$(code), 4) <> "8254" Then
        MsgBox "Non Standard Number Codes Found!  " & vbNewLine & "Check Number Codes  ", , "ADVISORY!"
    Exit Sub
End If
Next code
End Sub

使用right函数(假设检查8234总是最后四位数字(:

Sub CheckCodes()
    Dim code As Range
    For Each code In Range("L2:L1000")
        If VBA.Right$(VBA.Trim$(code), 4) <> "8234" Then
            MsgBox "Non Standard Number Codes Found!  " & vbNewLine & "Check Number Codes  ", , "ADVISORY!"
            Exit Sub
        End If            
    Next code
End Sub

相关内容

最新更新