我使用自定义按钮(形状)作为按钮,我想使用我找到的这段代码,但我无法让它正常工作,我不知道为什么。目标是向形状和宏添加屏幕提示。通常这是行不通的。只有其中之一有效,但不能同时有效。
--- 请不要要求我插入 Activex 控件。我知道鼠标移动事件。我确实尝试过这种方法,它有效,但它非常故障......
如果有人可以帮助我理解我做错了什么,那么附加的方法将是完美的。我在论坛中找到了这个方法,并且给作者“Jaafar Tribak”发了消息,但我还没有收到他的回复。所以我希望其他比我更了解编码的人能够真正解释为什么我无法让它工作。这是我从中获取代码的地方。https://www.mrexcel.com/board/threads/tooltip-and-macro-on-a-shape-in-excel-vba.442147/page-3#post-5524771
我理解它是这样操作的:通常,如果将屏幕提示添加到带有宏的形状中,则屏幕提示将起作用,但宏不会,因为超链接优先于单击事件,因此宏永远不会触发。此代码将屏幕提示置于命令栏事件中,并允许单击按钮来触发宏。使用我的代码,屏幕提示确实显示,但按钮单击事件不会触发,或者无论如何也不会启动我的宏。
这是代码,所有这些都与工作簿模块有关。
Option Explicit
Private WithEvents cmb As CommandBars
Private Type POINTAPI
x As Long
y As Long
End Type
#If VBA7 Then
Private Declare PtrSafe Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
Private Declare PtrSafe Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer
#Else
Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer …Run Code Online (Sandbox Code Playgroud)