Drehen Sie die Sichtbarkeit der chart series, on/off mit excel-Makros/vba
Mache ich einen Graphen (Diagramm) in Excel mit mehreren Datenreihen gezeichnet werden, auf dem gleichen Diagramm.
Brauche ich zum erstellen eines Makros/VBA-Lösung, dass können schalten Sie die Anzeigeeigenschaften dieser Serien - /ausschalten über das drücken einer Taste (oder checkbox, etc.)
Ähnlich wie dieses Bild (manuell über das excel-Menü-system)
Ich habe versucht, sich durch alle Elementvariablen/Methoden auf
https://msdn.microsoft.com/EN-US/library/office/ff837379.aspx
aber hatte noch nicht viel Glück.
Habe ich versucht das Spiel mit bits wie
Charts("Chart1").SeriesCollection(1)
und
Worksheets("Graphical Data").ChartObjects(1)
aber ich kann weder das chart-Objekt ( ich bekomme ein subscript out of range error), noch in der Lage zu finden, jede Methode, die mir erlauben würde, ein - /ausschalten der Sichtbarkeit der einzelnen Serien.
Irgendwelche Ideen?
.Visible
- Eigenschaft verwenden. Sie müssen .Add
und .Delete
die Serie.machen Sie erscheinen und verschwinden. Tun, was du getan hast in das Bild, das Sie gebucht, aber mit dem Makro-Recorder laufen, um herauszufinden, wie, dann aktualisieren Sie Ihre Frage mit dem code, den Sie erstellt haben, wenn Sie zu einer bestimmten Ausgabe.Wie ist es keine
.Visible
Eigenschaft? dass die Nähte wirklich blöd zu sehen, wie es offensichtlich besteht in den hintergrund, als die Funktionalität ist es durch die excel-Menüs...Sie würde Fragen müssen MS über, dass man.
Chart
hat eine .Visible
Eigenschaft, aber .SeriesCollection
nicht. Wenn Sie ausführen, Makro-Rekorder an, während Sie überprüft haben, diese Felder, werden Sie wahrscheinlich feststellen, dass das Dialogfeld ist im wesentlichen die Wiederherstellung des gesamten .SeriesCollection
von Grund auf.Ich habe versucht, und es muss nicht alles aufzeichnen. Es Datensätze, die Sie gewählt haben, das Diagramm, und es aktiviert hat, aber nichts aufgenommen wird zur tickenden/über die Tabelleneigenschaften die option. Buchstäblich nichts.
Nicht sicher, was Sie zu sagen gibt. Ich denke, die wird einkochen, hinzufügen und löschen von Serien im code. Da Sie gefunden haben, das MS-Dokumente, finden die
.Add
und .Delete
(oder ist es .Remove
- ich erinnere mich nicht) sollte einfach sein.InformationsquelleAutor unknownSPY | 2015-04-17
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich glaube, dass die Immobilie, die Sie suchen, ist die
SeriesCollection.Format.Line.Visible
Eigenschaft. Ich habe schnell eine Excel-Arbeitsmappe erstellt und Hinzugefügt, die eine einfache Daten-set (nur 1-10) und fügte hinzu, eine Linie Diagramm "Chart 2" auf das Blatt Tabelle1.Dieser code aktiviert die Sichtbarkeit der Linie aus:
Ebenso, Einstellung der
ser.Format.Line.Visible
EigenschaftmsoTrue
gemacht die Zeile wieder sichtbar.Als für das abrufen der chart selbst musste ich es zuerst aktivieren, dann meine
cht
- variable ActiveChart. Um den Namen des Diagramms, wählen Sie es und suchen Sie in das Feld name (in der Nähe, wo würden Sie den Wert der Zelle /Formel).Update
Wenn mit der oben beschriebenen Methode, die den Namen der Reihe bleibt in der box-Legende. Ich konnte Sie nicht finden, eine Eigenschaft Sichtbarkeit für die
SeriesCollection
in der Legende, aber ein workaround ist einfach die re-name der Serie als eine leere Zeichenfolge (dadurch wird die Serie verschwinden aus der Legende), und benennen Sie die Serie, wenn Sie möchten, es zu zeigen.Dieser code unten schalten Sie die Sichtbarkeit der Linie und den Namen der Reihe in der Legende.
Und, wenn Sie
.Format.Line.Visible = msoTrue
nur daran denken,ser.Name
zurück auf das, was der name für Ihre Reihe ist.Set cht = Worksheets("Sheet1").ChartObjects("Char 2")
ohne problem zu vermeidenActive
nichts. Froh zu sehen, scheint dies möglich. Ich hatte nicht gedacht, zu Graben in der.Format
Optionen, um es zu finden.Interessant, wenn ich das mache, bekomme ich einen "type mismatch", wenn ich es dennoch tun
Set cht = Worksheets("Sheet1").ChartObjects("Chart 2").Chart
es funktioniert. Werde ich entsprechend aktualisieren. Ich hatte nur eine Vermutung, weil ich zu tun hatte, diese auf ein Projekt, eine Weile zurück, und ich erinnere mich, dass es ein Schmerz, die Immobilie zu finden. Es ist begraben zu tief IMO (eine.SeriesCollection.Visible
Eigenschaft würde mehr Sinn machen, für mich).ah, ja, macht Sinn, da
Dim cht as Chart
, nichtDim cht as ChartObject
. Mein schlechtes, Sie sind richtig da.Ich bin Weg, zu lernen, was der Unterschied zwischen einem
Chart
undChartObject
jetzt ist.Das ChartObject ist die Form, die eingebettet ist in das Arbeitsblatt. Der Chart ist ein Diagramm, das eingekapselt ist innerhalb des ChartObject.
InformationsquelleAutor Soulfire
Immer, wenn ich nicht weiß, wie etwas wie dieses, ich schalten Sie den makro-Rekorder.
Hatte ich ein Diagramm mit vier Serien, und ich die filter Funktion in Excel 2013 ein-und ausblenden der zweiten Reihe, während die Makroaufzeichnung ausgeführt wurde.
Hier ist der relevante code:
Der Serie (Zeile oder Spalte) ist egal, das funktioniert für alle von Ihnen.
ActiveChart
Sie auch nennen könnte, den vollständigen PfadWorksheets("Sheet1").ChartObjects("Chart 1").Chart.FullSeriesCollection(1).IsFiltered = True
Dies ist ein sehr guter Ansatz, Es erlaubt dem Benutzer, Filter anwenden, um die Daten, wenn man will, anders als die akzeptierte Antwort, die versteckt für eine Serie gut.
Ich bevorzuge diese Lösung, da Sie auch überprüft/nicht überprüft, das Feld in der Datenquelle Auswählen im Menü. Als ich versuchte, die akzeptierte Lösung über, versteckte er die Serie, aber Links das Feld aktiviert im Menü.
InformationsquelleAutor Jon Peltier
Gibt es einen einfachen Weg, um on & off-die Sichtbarkeit der Serie: die Verwendung von filtern auf die Quelldaten.
Kann es helfen, Sie einfach wie folgt vor.
Können Sie ein neues Fenster. Setone von Ihnen zu source data-sheet und das andere Fenster zu-Chart-Blatt. Ordnen Sie die beiden Fenster zu sehen, die beide bei der gleichen Zeit. Nun, wenn Sie die filter der Serien, die Sie wie auf der source data sheet gleichzeitig sehen Sie die Serien, die du in der gewünschten Weise auf das andere Blatt.
Window
? Auch Sie müssen nicht alles erwähnen, wie Sie dies über ein makro? GrüßeInformationsquelleAutor Seyed Ababs Ziaei