Wie erstelle ich ein gestapeltes Säulendiagramm rein durch die Programmierung mit excel vba?
Ich versuche, erstellen Sie ein gestapeltes Säulen-Diagramm in VBA, wo es ist ein Balkendiagramm und jedes Balkendiagramm zeigt die Verteilung der Unterkategorien in der Grafik (Siehe rechts Bild). Für die normale Balkenanzeige alle die ich tun musste, war, erstellen Sie eine neue Serie und stellen Sie die Werte und XValues Eigenschaften. Ich bin mir nicht sicher, wie Sie es sagen, um die Werte für die Unterkategorien.
alt-text http://officeimg.vo.msecnd.net/en-us/files/627/780/ZA010220411.gif
Dies ist nicht etwas, was ich getan haben, in excel, aber aus meiner Erfahrung alles, was getan werden kann manuell getan werden kann, mit vba. Brechen Sie auf, was Sie tun müssen, Schritt für Schritt dann schauen Sie durch die API und herauszufinden, wie es zu tun. msdn.microsoft.com/en-us/library/aa213725(Büro.11).aspx
InformationsquelleAutor James | 2010-07-09
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Erstellen, die gestapelten Säulen-Effekt, den Sie brauchen, um eine Reihe für jede Unterteilung in der Spalte. Zum Beispiel, sagen wir, wir hatten 4 zoos. Sagen, Sie befinden sich in Miami, Atlanta, New York und Las Vegas. Auch haben wir 4 Tiere, Löwen, Tiger, Bären und Robben. Und wir wollen eine gestapelte Säule zeigt die Anzahl der für jedes Tier und auch die Gesamtzahl der Tiere.
Ersten, setzen Sie den chart-Typ zu xl3DColumnStacked wie diese.
Dann würden wir erstellen eine Serie, die für jedes Tier.
Dann legen Sie die Eigenschaft Werte in das array von Werten für die Tier-und die XValues-Eigenschaft des array von Namen für Städte. Also, wenn die erste Serie war für die Löwen, ein array mit der Anzahl der Löwen in Miami, Atlanta, New York, Las Vegas und ein array mit den Zeichenketten "Miami","Atlanta", etc. Die cityNames-array wiederverwendet werden für jede Serie, aber die lionCounts wird offensichtlich werden jedes mal ersetzt, wenn mit der entsprechenden Arrays. also tigerCounts, bearCounts, etc.
Das sollte alles, was es braucht, um erstellen einer gestapelten Spalte mit den Werten direkt aus Ihrem Programm anstelle der Zellbezüge.
InformationsquelleAutor James
Den einfachsten Weg, eine Aufgabe zu beginnen, wie das ist, zu sehen, was passiert, wenn Sie die Aufgabe durchführen, mit der hand, mit dem Makro-Rekorder zu erfassen, die VBA-Entsprechung.
Zum Beispiel, die ich gerade aufgenommen habe (in Excel XP, aber neuere Versionen sollten ähnlich sein). Der code ist genau so, wie aufgezeichnet:
Blick auf die oben, würde ich sagen, die erste Zeile,
Range("B4:D6").Select
ist nicht erforderlich, da es wiederholt weiter unten.Nun, um aufzuräumen ein bisschen. Hier der Objektkatalog kann, enorm hilfreich. Wenn Sie nicht vertraut sind, versuchen Sie schlagen die F2-Taste in den VBA-editor. Eingrenzen der Rahmen ein wenig, indem Sie "Excel" in der oberen Dropdownliste und schauen Sie auf die Diagramme in der Klassen-Liste. Die Auswahl
Add
im "Mitglieder..." - Liste gibt diese im unteren Bereich:So
Charts.Add
gibt eine Grafik, die müssen dasActiveChart
das ist wiederholt verwiesen, in der Rest des Codes. Vervielfältigung wie das ist mühsam (und kann die Leistung beeinträchtigen) also ich würd Nacharbeit ein wenig. Nehmen wir an, zum Wohle der übung, die wir wählen, unser Ziel, Daten vor dem ausführen des Makros, so dass es dann inSelection
wenn das makro ausgeführt wird. Blick auf die Mitglieder des Diagramms in der Objekt-Browser, es ist offensichtlich, dassSource
imSetSourceData
sollte einRange
. Lassen Sie uns versuchen, diese:Funktioniert es nicht auf meinem Rechner - ich denke
Selection
wahrscheinlich ändert sich, wenn ein Diagramm aktiviert ist. Also sollten wir erfassen den Bereich, bevor Sie die Arbeit mit der Karte:Von dort aus sollten Sie in der Lage zu finden alle Arten von Anpassungen (denken Sie daran-Objekt-Browser!) um das Diagramm wie du es möchtest. (Bedenken Sie, dass, je nach Ihrer Excel-version, gibt es vielleicht ein paar kleinere Funktionen, die nicht zugänglich über VBA.)
InformationsquelleAutor Mike Woodhouse
Wenn die makro-Aufzeichnung manuell, zwei Möglichkeiten für die ChartType; man plots von Zeilen, die von anderen Spalten. Wenn dieser später geändert wird durch einen anderen Prozess, das makro weiß nicht, schalten Sie es zurück.
Um sicherzustellen, dass es korrekt angezeigt wird, jedes mal geben die
ActiveChart.SetSourceData
Wert z.B.ActiveChart.SetSourceData Range("A1:B2"), xlRows
oder
ActiveChart.SetSourceData Range("A1:B2"), xlColumns
InformationsquelleAutor PluckyBob