分享

问与答122:如何根据输入数据动态添加提示信息?

 hercules028 2021-04-30

excelperfect

Q在我的Excel工作簿中有两个工作表,工作表“Seatingarrangement”用来排座位,工作表“DataValue”包含座位号、员工号及员工名字等信息。现在,我想在工作表“Seatingarrangement”中输入座位号后,显示关于座位号、员工号及员工名字等信息提示,如下图1所示。

图片

图1

工作表DataValue中的示例数据如下图2所示。

图片

图2

如何实现?

A肯定要使用VBA代码来实现。

在工作表“Seatingarrangement”的代码模块中,输入下面的代码:

Public sTarget As String

Private Sub Worksheet_Change(ByVal Target As Range)

    sTarget = Target.Address

    Dim MyVal As String

    Dim MyToolTipBody As String

    Dim MyToolTipHead As String

    Dim Rng As Range

    MyVal= Range(sTarget).Value

    With Worksheets('DataValue')

        Set Rng = .Cells.Find(What:=MyVal,LookIn:=xlFormulas, LookAt:=xlWhole)

        If Rng Is Nothing Then

            MsgBox '没有这个座位号!请核对!'

            Target.ClearContents

            Exit Sub

        End If

        MyToolTipHead = 'Seat No - '& .Range(Rng.Address).Value

        MyToolTipBody = '(' &.Range(Rng.Address).Offset(0, 1).Value & ' ) ' &.Range(Rng.Address).Offset(0, 2).Value

    End With

    With Range(sTarget).Validation

        .Delete

        .Add Type:=xlValidateInputOnly,AlertStyle:=xlValidAlertStop, Operator _

        :=xlBetween

        .IgnoreBlank = True

        .InCellDropdown = True

        .InputTitle = MyToolTipHead

        .ErrorTitle = ''

        .InputMessage = MyToolTipBody

        .ErrorMessage = ''

        .ShowInput = True

        .ShowError = True

    End With

End Sub

此时,效果如下图3所示。

图片

图3

注:今天的问题来源于chandoo.org,供有兴趣的朋友参考。

欢迎在下面留言,完善本文内容,让更多的人学到更完美的知识。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多