如何在VBA Excel中移动鼠标指针时显示更多信息。

3

我对VBA Excel有一个疑问。我想知道是否有一种方法可以在移动指针到按钮或单元格上时显示额外的信息。我希望以这种方式提供标签中显示的单词的含义。例如,如果标签显示单词“股票”,我希望某人只需将指针移动到该单词上,然后就会显示信息。

我正在使用Excel 2013,目前考虑的是当指针移动到某个位置时触发事件。

谢谢。

4个回答

2

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

Function exemple()
MsgBox "I ran"
End Function

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

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

现在,无论何时您悬停在该单元格上,该函数都将显示 msgbox。然后,您可以将按钮放在单元格上方(确保按钮小于单元格或在按钮周围输入公式的多个单元格中输入,否则它将不起作用)。您还可以将函数更改为隐藏/显示注释,而不是消息框,因为每次单击按钮时弹出可能会让人厌烦。
这远非完美,但应该能达到目的。
编辑:我建议您将公式中的“单元格中显示的文本”留空,因为否则,仅悬停在文本上将运行该函数,如果留空,则整个单元格将运行公式。

1

如果按钮在用户窗体上,请使用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

1
如果您想提供额外的信息并且不喜欢当单元格有注释时显示的烦人三角形,那么可以将额外的信息作为单元格的数据验证输入消息。然后,如果有人选择该单元格,则会显示信息。您还可以使用工作表的BeforeRightClick事件,在右键单击单元格时显示信息。请注意保留HTML标签。

0

将按钮的大小设置为两个或更多单元格的大小相同。在您想要放置按钮的位置合并单元格,右键单击并添加超链接。在右侧选择“本文档中的位置”。单击屏幕提示按钮并输入要显示的文本。我建议选择一个空白单元格作为“键入单元格引用”行,然后单击“确定”。右键单击合并的单元格并选择“格式单元格”。将字体大小更改为较大的值,例如28,然后将字体颜色更改为白色。这将防止打印时出现超链接。将按钮移动到合并的单元格上即可完成。无需使用宏。

我希望这对您有效果,就像对我一样。

这是一个宏

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

2
欢迎来到Stack Overflow!虽然这可能是解决问题的有价值提示,但一个好的答案也应该展示解决方案。请编辑并提供示例代码以说明您的意思。或者,考虑将其编写为评论。 - Toby Speight

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接