如何在VBA excel中的按钮上移动鼠标指针时显示更多信息。

时间:2015-08-18 17:28:57

标签: excel vba excel-vba pointers

我对vba excel有疑问。我想知道当你将指针移到按钮或单元格上时是否有办法显示额外的信息。我想这样做是为了提供标签中显示的单词的含义。例如,如果标签显示单词" stock"我希望有人可以将指针移到单词上然后显示信息。

我正在使用Excel 2013,到目前为止我在指针移动到一个位置的事件中进行思考。

感谢。

4 个答案:

答案 0 :(得分:1)

对于单元格,最简单的方法是使用注释。对于按钮,就我所知,没有直接的方法。你可以做的就是在vba中创建一个函数,在msgbox中显示你想要的信息,例如:

Function exemple()
MsgBox "I ran"
End Function

通过在给定单元格中使用公式调用此函数:

=hyperlink(exemple(),"Displayed text in cell")

现在,无论何时悬停该单元格,该函数都会显示msgbox。然后,您可以将按钮放在单元格上(确保按钮小于单元格或在按钮周围的多个单元格中输入公式,否则其功能将不会运行)。您还可以更改隐藏/显示注释的功能,而不是msgbox,每当您想要单击按钮时弹出它就会变得很烦人。

这远非完美,但应该做到这一点。

编辑:我建议您将"显示的文字留在单元格"在""的公式中,因为否则,只有悬停文本才会运行该函数,就好像你把它留空一样,整个单元格将运行公式。

答案 1 :(得分:1)

如果按钮位于UserForm上,请使用ControlTipText属性

如果按钮位于工作表上,则会检测到该事件

Private Sub cmdBtn_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, _
                             ByVal X As Single, ByVal Y As Single)

    If X < cmdBtn.Width And Y < cmdBtn.Height Then

        Sheet1.Cells(1, 1).Value2 = "More Info"

    End If

End Sub

答案 2 :(得分:0)

它不是鼠标悬停 - 但如果您想提供其他信息并且您不喜欢单元格有注释时显示的烦人三角形,您可以将其他信息作为{的输入消息{1}}用于单元格。然后,如果有人选择了该单元格,则将显示该信息。您还可以使用工作表的data validation事件在右键单击单元格时显示信息。

答案 3 :(得分:0)

使按钮的大小与两个或多个单元格相同。将单元格合并到想要按钮所在的位置,右键单击并添加超链接。在右侧,选择在此文档中放置。单击屏幕提示按钮,然后输入要显示的文本。建议您为“键入单元格参考线”选择一个空白单元格,然后单击“确定”。右键单击合并的单元格,然后选择“设置单元格格式”。将字体大小更改为大字体(我喜欢28),然后将字体颜色更改为白色。这样可以防止打印时显示超链接。将您的Button移到合并的单元格上,就可以了。不需要宏。

我希望这对您同样有效。

这是一个宏

Sub ButtonHover()
'
' ButtonHover Macro
'

'
    Range("M8:M9").Select
    With Selection
        .HorizontalAlignment = xlCenter
        .VerticalAlignment = xlBottom
        .WrapText = False
        .Orientation = 0
        .AddIndent = False
        .IndentLevel = 0
        .ShrinkToFit = False
        .ReadingOrder = xlContext
        .MergeCells = False
    End With
    Selection.Merge
    ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= _
        "'P4P Master'!Y6", ScreenTip:="Button Hover", TextToDisplay:= _
        "'P4P Master'!Y6"
    With Selection.Font
        .Name = "Calibri"
        .FontStyle = "Regular"
        .Size = 28
        .Strikethrough = False
        .Superscript = False
        .Subscript = False
        .OutlineFont = False
        .Shadow = False
        .Underline = xlUnderlineStyleSingle
        .ThemeColor = xlThemeColorDark1
        .TintAndShade = 0
        .ThemeFont = xlThemeFontMinor
    End With
    ActiveSheet.Buttons.Add(786.75, 150.75, 72, 72).Select
    Selection.OnAction = "ButtonHover"
    ActiveSheet.Shapes("Button 6").IncrementTop -65
        ActiveSheet.Shapes("Button 6").ScaleWidth 2.0526315789, msoFalse, _
        msoScaleFromTopLeft
    ActiveSheet.Shapes("Button 6").ScaleHeight 1.52, msoFalse, msoScaleFromTopLeft
End Sub