2017-07-27 4 views
0

ich verschiedene Formen in Excel mit Steckern mit dem folgenden Code verbinden möchten:Kann nicht Formen über Shape.Name verbinden =

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

Aus irgendeinem Grund kann ich nur über Shape Anschlüsse hinzufügen, aber nicht über ExampleName+i.

conn.ConnectorFormat.BeginConnect Shape, 1 < - Werke `conn.ConnectorFormat.BeginConnect EXAMPLENAME + i, 1 < - nicht

Funktioniert

Jeder Vorschlag, wie diese zu lösen? Ich brauche das, weil die Formen innerhalb einer For-Schleife erstellt werden und unterschiedliche Namen haben sollen.

+2

'w.Shapes ("EXAMPLENAME") ....' – tigeravatar

+0

Es sieht aus wie tigeravatar bereits Sie die Lösung gegeben hat. Um es auf Ihr Beispiel anzuwenden, verwenden Sie 'w.Shapes (ExampleName & i)'. – Domenic

+0

Ja, das war's! Vielen Dank! – Jonas

Antwort

0

Während Sie sich in der For-Schleife befinden, können Sie auf die Create-Form verweisen, wie immer Sie sie festlegen, solange Sie nur mit jeweils einer Form arbeiten. In diesem Fall Shape (ich würde diese Variable ändern).

So würde die Schleife in etwa so aussehen:

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

Das Problem ist, dass ich die Formen nur über 'shpTectangle' und nicht über' strName' verbinden kann. Irgendwie gibt es keine Reaktion, wenn ich strName verwende; Kann ich stattdessen 'shpTectangle' als dynamische Variable verwenden? – Jonas

+0

@ThatOneGuy, bitte verwenden Sie 'Mit ... Ende mit' nicht, um eine Zeile zu vereinfachen. 'shpRectangle.Name = strName' ist viel einfacher zu lesen als die drei Zeilen, die Sie verwendet haben – jsotola

+0

Ich habe meine Frage aktualisiert – Jonas

Verwandte Themen