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,供有兴趣的朋友参考。 |
|
来自: hercules028 > 《excel》