2017-01-13 2 views
0

Hallo, ich habe nach einer Lösung gesucht, um mein Diagramm (innerhalb desselben Arbeitsblatts) von den Werten zu trennen. Dazu würde ich normalerweise die Daten auswählen, in Formeln (F2) gehen, F9 drücken undVerknüpfen von Excel-Chart mit VBA

eingeben, meine Serie würde in Zahlen umgewandelt werden. Ich automatisierte dies als sendskeys, ich weiß, es gibt eine andere Option online, aber ich möchte die Lösung als Sendkeys. Wählen Sie grundsätzlich Daten> F2> F9> Enter. Das funktioniert gut, wenn ich es manuell mache.

Mein VBA-Code sieht wie folgt aus

ActiveChart.ChartArea.Select 
Application.SendKeys ("^{s}") 
ActiveChart.SeriesCollection(2).Select 
Application.SendKeys ("{f2}"), True 
Application.SendKeys ("{f9}"), True 
Application.SendKeys ("{f9}"), True 
Application.SendKeys ("~"), True 
Application.SendKeys ("^{s}") 

ActiveChart.ChartArea.Select 
ActiveChart.SeriesCollection(1).Select 
Application.SendKeys ("{f2}"), True 
Application.SendKeys ("{f9}"), True 
Application.SendKeys ("~"), True 

Doch eine Hälfte des zweiten Satzes von Daten immer noch verbunden ist.

Vielen Dank für Ihre Hilfe im Voraus - LGR

Antwort

0

Sie können so etwas tun um die Series.Values von einer Referenz zu einer Range zu den tatsächlichen zugrunde liegenden Werten zu konvertieren.

Sub foo() 
Dim cht As Chart 
Dim srs As Series 

Set cht = ActiveChart 

For Each srs In cht.SeriesCollection 

    srs.Values = srs.Values 

Next 

End Sub 
+0

Danke. Ich habe mittlerweile mehrere andere "Lösungen" online gefunden, alle mit dem gleichen Ziel. Ihre ist bei weitem die effizienteste, einfache und kurze Lösung, die ich gefunden habe, brillant einfach. Es scheint so einfach, dass ich mir nicht vorstellen kann, wie andere und ich bisher nicht darüber nachgedacht haben. – LGR

+0

Das einzige, was mich stört, ist, dass die Beschriftung der x-Achse gelöscht wird, wenn ich eine Zeile lösche. Z.B. Prozess: 5, wenn gelöscht wird zu "": 5. Vielleicht hast du eine andere Lösung für mich, die Arbeit mit Charts in VBA ist neu für mich. – LGR

+0

@LGR nicht ganz sicher, was das Problem sein könnte, aber ich würde vorschlagen, eine neue/separate Frage zu stellen auf diese Weise mehr Leute werden in der Lage sein, damit zu helfen (und natürlich, wenn ich Zeit habe, werde ich versuchen, es auch zu überprüfen). Versuchen Sie Screenshots mit Ihrer Erklärung einzubinden! Prost –

0

Try-Tasten senden zu vermeiden. Verwenden Sie stattdessen:

ActiveWindow.Selection.ShapeRange(1).LinkFormat.BreakLink 

Quelle: http://www.vbaexpress.com/forum/showthread.php?45829-How-to-break-links-to-excel-chart

Edit: Wie pro Kommentar von David Zemens, wird dies für eingebettete Diagramme arbeiten, aber nicht mit Excel-Diagrammobjekte

+1

Dies funktioniert für eingebettete Diagramme, aber es funktioniert nicht für ein normales Excel ChartObject, das sich im Arbeitsblatt befindet. –

+0

@DavidZemens Fügt der Antwort eine Notiz hinzu – User632716