繁体   English   中英

当单元格值不等于“X”时,是否有一个 vba 代码会打开一个 msgbox?

[英]Is there a vba code which opens a msgbox when cell value is not equal to “X”?

我不是 vba 精明,所以我认为这是最好的地方问。 我的目标是在特定单元格不等于“X”值时出现一个 msgbox。 这是我下面的代码

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 代码。

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

在此处输入图像描述https://1drv.ms/x/s?AvRcvV5GEpBXnRIrzT2xDTv0iTQh?e=tV3LeN

您的代码似乎是正确的。 一旦您 select 目标工作表中的另一个单元格,此代码将运行并且如果“G4:G160”范围内的所有值都等于 17521,则该代码将永远不会显示 msgbox。如果出现,肯定至少有一个值 <>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。 如果您想使用第二个选项,请告诉我,然后帮助您创建它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM