我是这个论坛的新手,还在学习VBA。
我的工作表上有几个形状(美国地图-每个州都有自己的形状)。放在地图上的小圆圈代表某些城市。我希望在几个城市之间有直接的连接器。尽管有许多连接器,但基于我在A8:A10范围内的选择,我希望一次最多显示三个连接器。如果某个连接器没有在该范围内命名,则它应该是不可见的。
发布于 2015-09-23 01:23:32
语句应为:.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如果这对你有效,请告诉我
发布于 2015-09-23 16:31:02
你可以在下面的代码中使用这个。假设形状和范围在同一张纸上。
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 Subhttps://stackoverflow.com/questions/32723024
复制相似问题