如何在userform鼠标悬停工具提示上换行?

时间:2013-02-11 06:28:40

标签: excel excel-vba vba

我一直试图找到一种方法在鼠标悬停工具提示上放置换行符

我想要显示

  

完全 - 从外部部分完全覆盖 - 仅覆盖   来自外部的非空白 - 仅在空白单元格上输入数据

  

完全 - 从外部完成覆盖
  部分 - 仅覆盖外部的非空白   否 - 仅在空白单元格上输入数据

有没有办法做到这一点

使用Excel 2010 btw

4 个答案:

答案 0 :(得分:0)

excel会忽略ControlTipText属性中的换行符/回车符。一种可能的解决方法是使用隐藏的多行标签(格式化为工具提示),通过使用关联控件和用户表单的MouseMove事件切换其可见性 - 即SomeControl_MouseMove显示标签和{ {1}}再次隐藏它(可能在延迟之后)。如果用户非常快速地移动指针,则该方法可能有点击中或未命中。另一个(更好的,恕我直言)解决方案是在表单的某处有一个永久可见的标签或文本框对象,其标题/值根据当前鼠标指针下的任何控件而变化,再次使用ParentForm_MouseMove事件。

编辑:如果我怀疑您的工具提示与组合框/列表框控件相关联,您可能需要考虑在控件的第二列中包含选项说明吗?

答案 1 :(得分:0)

我试图保持简单(没有api,非常短的代码):

Private Sub ListBox1_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
'If Events Then
    Dim list_index As Long, Zero As Long
    Zero = Me.ListBox1.TopIndex
    list_index = Y \ (8 + 2) + Zero ' ; 8 si the size of Font ; note \ is a integer division
    'Me.label1 = Y          'test label
    'Me.label2 = list_index 'test label
    'Me.label3 = Zero       'test label
    With Me.ListBox1
        .ControlTipText = .List(list_index, 1)
    End With
'End If
End Sub

答案 2 :(得分:0)

这在Access VBA中有效-没理由在Excel VBA中不起作用:在输入控件提示文本时,无论您想换行何处,只需按Shift-Enter。

由于我们在其中输入控件提示文本的字段(在Access中)一次只显示一行,因此您将不得不使用向上和向下箭头来滚动浏览该一行中的文本。时间字段,以确保正确输入所有内容。

答案 3 :(得分:-3)

我不确定我理解这个问题。通过“mouseover tooltip”你的意思是评论,对吗?创建换行符应该没有问题。只需点击输入 / * 返回 *键,您希望中​​断对我来说很好。这是我所做的一系列详细说明。

1)我选择了我想要的细胞。

2)在评论功能区中,我选择了新评论。

3)然后,我将您的文本复制并粘贴到评论框中。

4)我调整了评论框大小以防止包装。

5)最后,我删除了文本并手动重写,以确保我可以手动输入换行符。

希望这会有所帮助。欢呼声。