2017-07-27 50 views
0

我想在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

回答

0

當您處於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