2017-02-18 7 views
0

Ich versuche, eine Form in einem Diagramm in Excel durch VBA zu positionieren, und obwohl ich die Parameter der Position richtig eingestellt haben, ist das Ergebnis der Form in einer anderen Position, etwas anders aber unterschiedlich.Excel VBA Chart Shape in falscher Position

Ich habe das Internet gesucht, aber ich habe keine befriedigende Antwort gefunden, warum dies passiert.

Zum Beispiel habe ich diesen Code verwenden

Set shpRect = Chart1.Shapes.AddShape(msoShapeRectangle, 50, 75, 250, 175)

und erzeugt ein Rechteck, aber nicht in der 50, 75 Position, aber in der Lage, 60,80 usw.

Kennen Sie ein Update für dieses Problem?

+0

Wie begründen Sie, dass die 'Top' und' Left' 80 und 60? Ihr Code funktioniert für mich, und wenn ich die "Top" und "Left" Eigenschaften bekomme, sind sie 75 und 50. –

+0

Ich habe ein Diagramm mit einer nummerierten x Achse und während die linke Position der Form zwischen 0 und 1 liegen sollte, es ist größer als eins, was bedeutet, dass die Position falsch ist, wie es zwischen 0 und 1 sein sollte. – Lvassilopoulos

+0

Sie möchten also diesen Befehl ausführen - 'AddShape' - aber geben Sie Parameter, die tatsächlich relativ zu den Achsen des Diagramms sind? –

Antwort

0

Was die Form zu einer bestimmten Zelle zu positionieren, lassen Sie uns „C3“ sagen, nachdem es erstellt wird:

Set shpRect = Chart1.Shapes.AddShape(msoShapeRectangle, 50, 75, 250, 175) 

With shpRect '<-- modify the shape's position 
    .Top = Range("C3").Top 
    .Left = Range("C3").Left 
End With 
+0

Danke, aber die Form sollte in einem Diagramm an einer berechneten Position sein. Nicht in einer Zelle. – Lvassilopoulos

+0

@Lvassilopoulos Sie setzen die Form in ein Diagrammblatt ein? –

+0

ja ich positioniere es in einem Diagramm – Lvassilopoulos