【问题标题】:Dynamic/Customize message with the entered value in a cell在单元格中输入值的动态/自定义消息
【发布时间】:2019-06-01 04:44:27
【问题描述】:

有什么方法可以在单元格中显示带有输入值的数据验证消息。

示例: 一个单元格被限制输入 5 到 10 之间的值,如果我输入的值是 11,它应该显示消息说 “11 不属于单元格限制值”。

我知道我们可以输入自定义消息(单元格>数据>数据验证>错误警报),但我希望消息显示当前输入的值以及我的自定义消息,而不仅仅是通用消息。 如果可能的话,我还想在将来将该特定行的任何其他现有列值与错误消息连接起来。

因此,任何人都可以就以下问题给我建议:

  1. 如何在消息中显示单元格输入的值
  2. 还有该特定行的不同列的另一个单元格值。

谢谢!

【问题讨论】:

  • 数据验证无法做到这一点,因为错误消息不是动态的。因此,您需要使用 VBA 编写自定义验证。
  • 感谢 Variatus 的回复。我怀疑它是否可能来自数据验证。将使用 VBA 实现。

标签: excel vba excel-formula


【解决方案1】:

不使用数据验证,此代码将检查您定义的范围内的更改。然后将该范围内已更改单元格的值与您设置的条件(在本例中为 5 到 10 之间)进行比较。

如果您需要,请告诉我:

(复制并粘贴到需要验证的工作表上)

Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Me.Range("B2:B10")) Is Nothing Then 'Change the range as you need
        If Target = "" Then Exit Sub 'If the value is deleted, do nothing
        If Target < 5 Or Target > 10 Then 'Validation condition(s)
            MsgBox Target & " does not come under cell restriction value" 'The message will show the value in the changed cell (Target)
            Target = "" 'Delete the not valid value
        End If
    End If
End Sub

您也可以在同一代码表中使用以下代码获取更改单元格的行,并在同一行和不同列中找到另一个值:

Me.Range("A" & Target.Row)

【讨论】:

    猜你喜欢
    • 2019-04-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-27
    • 1970-01-01
    • 2022-01-27
    • 1970-01-01
    相关资源
    最近更新 更多