VBA中如何判断选中shape的名称
我想做一个地图,点击地图中的省,在指定单元格显示选中省份,用selection.name编写后把地图指定到宏,行不通,这样点击地图就无法被选中了,求大侠指点!!!!!好的...
我想做一个地图,点击地图中的省,在指定单元格显示选中省份,用selection.name编写后把地图指定到宏,行不通,这样点击地图就无法被选中了,求大侠指点!!!!!好的话追加分!!!!
展开
1个回答
展开全部
你既然想选中图片,再做Select或Activate 单元格.图片的选中会转移到单元格上的.你可以选中图片 然后找到相应的省的名称的单元格,把该单元格用颜色标示 同样能达到你的目的
假设图片的名称是省份名称,工作表sheet1的A列里保存的是省份的名称
创建两个宏:
宏1:目的是把所有的图片都和宏2绑定
Sub 绑定()
Dim shap As Shape
For Each shap In Sheet1.Shapes
shap.OnAction = "s_Click"
Next shap
End Sub
宏2: 实现你的要求
Sub s_Click()
a = Application.Caller
Sheet1.Shapes(a).Select
Sheet1.Range("A3:A10").Interior.ColorIndex = xlNone
Set rng = Sheet1.Range("A3:A10").Find(a)
If Not rng Is Nothing Then rng.Interior.ColorIndex = 3
End Sub
假设图片的名称是省份名称,工作表sheet1的A列里保存的是省份的名称
创建两个宏:
宏1:目的是把所有的图片都和宏2绑定
Sub 绑定()
Dim shap As Shape
For Each shap In Sheet1.Shapes
shap.OnAction = "s_Click"
Next shap
End Sub
宏2: 实现你的要求
Sub s_Click()
a = Application.Caller
Sheet1.Shapes(a).Select
Sheet1.Range("A3:A10").Interior.ColorIndex = xlNone
Set rng = Sheet1.Range("A3:A10").Find(a)
If Not rng Is Nothing Then rng.Interior.ColorIndex = 3
End Sub
追问
Application.caller这个好用!!!能解释下onaction么?重在学习,问题已经解决了,再送20分!!哈哈
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询