无法通过Shape.Name连接形状=

问题描述:

我想在Excel中不同的形状,使用下面的代码连接器连接:无法通过Shape.Name连接形状=

Set Shape = w.Shapes.AddShape(msoShapeRectangle, X, Y, w, h) With Shape .Name = ExampleName+i End With

出于某种原因,我只能通过Shape但不能添加连接器通过ExampleName+i

conn.ConnectorFormat.BeginConnect Shape, 1 < - 工程 `conn.ConnectorFormat.BeginConnect范例名称+ I,1 < - 不工作

任何建议如何解决此问题?我需要这个,因为这些形状是在For循环中创建的,并且意味着具有不同的名称。

+2

'w.Shapes( “范例名称”)......' – tigeravatar

+0

它看起来像tigeravatar已经给您的解决方案。要将它应用到你的例子中,使用'w.Shapes(ExampleName&i)'。 – Domenic

+0

是的,它做到了!谢谢! – Jonas

当您处于For循环中时,只要您一次只处理一个形状,就可以将创建形状引用为您所设置的任何形状。在这种情况下形状(我会改变这个变量)。

所以循环会看起来像:

Sub test() 
For each strName in strNames() 
    Set shpRectangle = w.Shapes.AddShape(msoShapeRectangle, X, Y, w, h) 
    With shpRectangle 
     .Name = strName 
    End With 
    shpRectangle.  <rest of code> 
Next strName 
End Sub 
+0

问题是我只能通过'shpTectangle'连接形状,而不是'strName'。不知何故,如果我使用strName没有反应;我可以使用'shpTectangle'作为动态变量吗? – Jonas

+0

@ThatOneGuy,请不要使用With With End With来简化一行。 'shpRectangle.Name = strName'比您使用的三行更容易阅读 – jsotola

+0

我更新了我的问题 – Jonas