Vba 如果某个范围包含形状';姓名
我是这个论坛的新手,仍然在学习VBA 我的工作表上有几个形状(美国地图——每个州都有自己的形状)。地图上的小圆圈代表某些城市。我想在几个城市之间有一个直接的连接器。虽然有许多连接器,但我希望根据我在A8:A10范围内的选择,一次最多显示三个连接器。如果某个连接器的名称不在范围内,则该连接器应不可见。您的语句应为: .Visible=msoTrue或.Visible=msoFalseVba 如果某个范围包含形状';姓名,vba,excel,shapes,Vba,Excel,Shapes,我是这个论坛的新手,仍然在学习VBA 我的工作表上有几个形状(美国地图——每个州都有自己的形状)。地图上的小圆圈代表某些城市。我想在几个城市之间有一个直接的连接器。虽然有许多连接器,但我希望根据我在A8:A10范围内的选择,一次最多显示三个连接器。如果某个连接器的名称不在范围内,则该连接器应不可见。您的语句应为: .Visible=msoTrue或.Visible=msoFalse If yourCondition Then Dim oActive As Worksheet
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
让我知道这是否适合您您的声明应该是:
.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
让我知道这是否适用于您您可以使用下面的代码。假设形状和范围在同一张纸上
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
您可以使用下面的代码。假设形状和范围在同一张纸上
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
谢谢你的回复。我的情况有点问题。如何让Excel引用A8:A10的范围?我对VBA语法有点不确定。对不起,还有一个问题。我有30多个形状,我想以这种方式格式化,是否可以通过查找形状名称来缩短代码,而不是对每个特定形状进行编码?您在这个范围内寻找什么条件?换句话说,您希望形状何时可见,何时不可见?如果一个形状可见,它们是否都可见?对不起,让我澄清一下:工作表上有几个形状(美国地图。地图上的小圆圈代表某些城市。我希望在几个城市之间有直接的连接符。虽然有许多连接符,但我希望根据我在A8:A10范围内的选择,一次最多显示三个。如果某个连接符未在该范围内命名,则它应该是不可见的e、 我添加了一个新的编辑,以向您展示如何执行该条件。如果此答案对您有效,请单击此答案旁边的绿色复选标记,将您的问题标记为已回答。感谢您的回答。我对该条件有点问题。我如何让Excel引用A8:A10的范围?我对VBA语法有点不确定x、 对不起,还有一个问题。我有30多个形状,我想用这种方式格式化。是否可以通过查找形状的名称来缩短代码,而不是对每个特定形状进行编码?您在这个范围内寻找什么条件?换句话说,您希望形状何时可见,何时不可见ible?如果一个形状可见,它们是否都可见?对不起,让我澄清一下:工作表上有几个形状(美国地图。地图上的小圆圈代表某些城市。我希望在几个城市之间有直接的连接符。虽然有许多连接符,但我希望根据我在A8:A10范围内的选择,一次最多显示三个。如果某个连接符未在该范围内命名,则它应该是不可见的e、 我添加了一个新的编辑,以向您展示如何执行此条件。如果此答案对您有效,请单击此答案旁边的绿色复选标记,将您的问题标记为已回答。发布您尝试的解决方案。尝试从浏览工作表事件开始。现在,您的问题缺少详细信息,与主题无关。发布您尝试的解决方案。请尝试从浏览工作表事件开始。现在,您的问题缺少详细信息,因此与本主题无关。