作者:绿色风
分类:
时间:2022-08-17
浏览:220
楼主 嘉昆2011 |
数据来源,9楼:- http://www.exceltip.net/thread-31037-1-1.html
问题陈述: 如何用VBA编写利用鼠标点击或滑过的动作实现弹出一个文本框的效果,并且这个文本框里的内容是可以调用的?
实现的方法有很多,12楼的朋友给出了纯VBA的解决方案,然而大段的代码像一堵无形的墙,让很多对Excel图表制作有热情的朋友生畏。那么是否有简洁或通俗一点的代码呢?本文提供两种思路,主要运用到常用函数,名称标签,和简单VBA的知识点,供大家参考。
方法一:点击时,弹出图形框信息。 函数:Offset,Index VBA:Application.Intersect
制作步骤: 1,对号码,选手和头像建立名称,Num, Player & Figs:- =点击!$A$10
- =点击!$D$2:$D$6
- =OFFSET(点击!$C$1,Num,)
2,完善单元格与图表信息框之间的链接,编写简易VBA:- Private Sub Worksheet_SelectionChange(ByVal Target As Range)
- If Not (Application.Intersect(ActiveCell, Range("Player").Cells) Is Nothing) Then
- Call sDetail
- Else
- ActiveSheet.Shapes("ShowDetail").Visible = False
- End If
- End Sub
插入模块:- Sub sDetail()
- If ActiveCell.Value = "" Or ActiveCell.Value = 0 Then
- Exit Sub
- Else
- [Num] = ActiveCell.Value
- With ActiveSheet.Shapes("ShowDetail")
- .Left = ActiveCell.Left + 60
- .Top = ActiveCell.Top + 20
- .Visible = True
- End With
- End If
- End Sub
效果图:
方法二:滑过时,弹出图表信息。 函数:Offset,Index,HyperLink VBA:自定义函数
制作步骤: 1,与上例一样,不赘述了。 2,完善单元格与图表信息框之间的链接,编写简易VBA:- Function Detail(rng As Range)
- If Range("Selected_Num").Value = rng.Value Then
- Exit Function
- Else
- Range("Selected_Num").Value = rng.Value
- With ActiveSheet.Shapes("Infor")
- .Left = rng.Left + 50
- .Top = rng.Top + 20
- .Visible = True
- End With
- End If
- End Function
3,建立辅助列,把字体设置成“Webdings”,输入公式:- =IFERROR(HYPERLINK(detail(D2)),"3")
注:此法是利用HyperLink函数的一点特性:但鼠标悬浮其上时,其状态会发生改变。而其中加入自定义函数时,加上配合“Webdings”字体,会发生别样的效果。此法由Chandoo老师所发现,具体可以参看链接:- http://chandoo.org/
效果图:
附件:
VBA代码.rar
|
2楼 peakchu |
嘉昆哥好强大,跟着学习 |
3楼 水吉果果 |
震撼,学习 |
4楼 嘉昆2011 |
谢谢支持 |
5楼 嘉昆2011 |
谢谢支持 |
6楼 LQQKLMYT |
喔。。V白学习了 |
7楼 千年一梦遥 |
昆哥,图表和V都好强!学习 |
8楼 wise |
学习了 |
9楼 芐雨 |
这个要学习啊 |
免责声明
有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素,
经与ExcelTip.Net站长Apolloh商议并征得其同意,
现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示,
供有需要的人士查询使用,也慰缅曾经的论坛时代。
所示各个帖子的原作者如对版权有异议,
可与本人沟通提出,或于本站点留言,我们会尽快处理。
在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一