当单元格值不等于 "X" 时,是否有 vba 代码打开消息框?

Is there a vba code which opens a msgbox when cell value is not equal to "X"?

我不 vba 精明,所以我认为这是最好的提问地点。我的目标是在特定单元格不等于 'X' 值时出现一个消息框。这是我下面的代码

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

Dim myCell As Range

For Each myCell In Range("G4:G160")
    If myCell.Value <> 17521 Then
        MsgBox "INCORRECT SKU RECHECK PALLET AND INFORM SUPERVISOR"
        Exit Sub
    End If
Next myCell
End Sub

单元格值取自另一个单元格,因此未手动输入。 当我 运行 这个宏时,它会在我每次更改单元格或单击时出现。数字正确时也会出现。我只需要这个msgbox只有在它不等于值时才会出现。

我也希望消息是红色的。如果这足够简单,请让我知道该做什么或更改什么。对我来说最大的学习曲线,因为我总是避免 vba 代码。

编辑:请查看下面的 link。右边的条形码 1,2 和 3 是正确的,可以扫描到 B4 等等,错误的是 4 和 5。我希望 msgbox 或用户窗体在视觉上只显示错误的条形码。如果输入正确则不会弹出。

enter image description here https://1drv.ms/x/s!AvRcvV5GEpBXnRIrzT2xDTv0iTQh?e=tV3LeN

您的代码似乎是正确的。一旦您 select 目标 sheet 中的另一个单元格,此代码将运行,并且如果 "G4:G160" 范围内的 所有值 都相等,则永远不会显示消息框到17521。如果出现,肯定至少有一个值<>17521。 我建议改用 Change Event

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim myCell As Range

    For Each myCell In Range("G4:G160")

        If (Not IsEmpty(myCell)) And myCell.Value <> 17521 And myCell.Value <> "" Then

            MsgBox "INCORRECT SKU RECHECK PALLET AND INFORM SUPERVISOR", vbCritical

            Exit Sub
        End If

    Next myCell
End Sub

关于msgbox的红色,不能更改msgbox的颜色。您有两个选择:

  1. 显示 Critical 图标而不是红色:
MsgBox "INCORRECT SKU RECHECK PALLET AND INFORM SUPERVISOR", vbCritical

在这种情况下,您会看到如下内容:

  1. 创建一个用户窗体并调整其字体颜色,然后显示它而不是 MsgBox。 如果您想使用第二个选项,请告诉我,然后帮助您创建它。