如果范围包含形状的名称,使形状可见

我是新来的论坛,还在学习VBA。

我的工作表上有几个形状(美国的地图 – 每个州都有自己的形状)。 放在地图上的小圈子代表某些城市。 我想在几个城市之间有直线连接。 虽然有很多连接器,但是我想根据我在A8:A10范围内的select一次只显示三个。 如果某个连接器没有在该范围内命名,则应该是不可见的。

你可以使用下面的代码。 假设是形状和范围在同一张纸上。

Public Sub Test() ActivateShapes ActiveSheet.Range("A8:A10") End Sub Public Sub ActivateShapes(rInputRange As Range) Dim rCell As Range On Error Resume Next For Each rCell In rInputRange rInputRange.Parent.Shapes(rCell).Visible = msoTrue Next rCell End Sub 

您的声明应该是:.Visible = msoTrue或.Visible = msoFalse

 If yourCondition Then Dim oActive As Worksheet Set oActive = ActiveSheet oActive.Shapes("CharlotteTruck").Visible = msoTrue End if 

编辑:

这是你可以使用的一个条件:

  If Not Intersect(Target, Range("A8:A10")) Is Nothing Then 'condition to run when not clicked in range Cancel = True 'This line can be remove if not needed 'condition to run if cell in range was clicked End If 

让我知道这是否适合你