Q:在《问与答122:如何根据输入数据动态添加提示信息?》中,我们实现了根据工作表“DataValue”中座位号、员工号及员工名字等信息,在工作表“Seatingarrangement”中的座位号单元格显示关于座位号、员工号及员工名字等信息提示,如下图1所示。
图1
工作表DataValue中的示例数据如下图2所示。
图2
现在,我想要当工作表DataValue中的数据改变后,工作表“Seatingarrangement”中相应的信息实时更新。
如何实现?
A:同样要使用VBA代码来实现。
在工作表DataValue的代码模块中,输入下面的代码:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim strVal As String
Dim strToolTipBody As String
Dim strToolTipHead As String
Dim rng As Range
Dim ws As Worksheet
If Target.Column = 2 Then
strVal = Target.Offset(0, -1).Value
strToolTipHead = "Seat No - "& strVal
strToolTipBody = "(" &Target.Value & " ) " & Target.Offset(0, 1).Value
ElseIf Target.Column = 3 Then
strVal = Target.Offset(0, -2).Value
strToolTipHead = "Seat No - "& strVal
strToolTipBody = "(" &Target.Offset(0, -1).Value & " ) " & Target.Value
Else
Exit Sub
End If
Set ws = Worksheets("Seatingarrangement")
Set rng = ws.Cells.Find(What:=strVal,LookIn:=xlFormulas, LookAt:=xlWhole)
If rng Is Nothing Then
MsgBox " 暂时没有找到这个座位号!"
Exit Sub
End If
With ws.Range(rng.Address).Validation
.Delete
.Add Type:=xlValidateInputOnly,AlertStyle:=xlValidAlertStop, Operator _
:=xlBetween
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = strToolTipHead
.ErrorTitle = ""
.InputMessage = strToolTipBody
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With
End Sub
此时,效果如下图3所示。
图3
欢迎在下面留言,完善本文内容,让更多的人学到更完美的知识。
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有