Erstellen ein Diagramm in Excel mit VBA/makro
Ich ein makro erstellt in Excel für die Erstellung von Balkendiagrammen automatisch.
Immer wenn ich es starten, es gibt "smr run time error" und ich bin nicht in der Lage, um herauszufinden, was ist Los mit meinem code.
Sub CreateGraph()
'
' CreateGraph Macro
''Initialize variables
Dim lastRow As Integer
Dim xlsPath As String
Dim xlsFile As String
xlsPath = "H:\"
xlsFile = "text.xls"
Workbooks.Open Filename:=xlsPath & xlsFile
ActiveWindow.SmallScroll Down:=-81
Range("A1:B" & lastRow).Select
ActiveSheet.Shapes.AddChart.Select
ActiveChart.SetSourceData Source:=Range("'TEST'!$A$1:$B" & lastRow)
ActiveChart.ChartType = xlBarClustered
ActiveChart.Axes(xlCategory).Select
ActiveSheet.ChartObjects("Chart 2").Activate
ActiveChart.Axes(xlCategory).ReversePlotOrder = True
Range("Q111").Select
ActiveWorkbook.Save
ActiveWorkbook.Close
End Sub
Kann mir jemand helfen bei der Lösung dieses Rätsels bitte.
Auch für die Ausführung aller Makros automatisch von SAS, die ich immer ändern Sie die Excel-Optionen für "alle Makros aktivieren", welche ich nehme an das ist nicht gut. Ich habe Leute gesehen, die das erstellen und ausführen von Makros ohne dies zu tun. Können Sie mir bitte sagen, wie kann ich die Makros mit der Aktivierung der option " alle Makros in Excel.
- Nun, ich kann sehen, die Sie jetzt angenommen ein paar mehr Antworten, so bin ich froh, dass ich dazu beitragen könnte, als eine Erinnerung. Was ist mit meinen anderen Fragen oben? Wenn Sie nicht ansprechen, dann ist es fast unmöglich, Ihnen zu helfen.
- Es ist nicht klar aus der Frage, aber diese, über das schreiben in eine Excel-Arbeitsmappe in Access VBA. Ich denke, "Access-vba" sollte Hinzugefügt werden, als ein Tag, aber ich bin nur noch 79% von dem Weg, um mit dem "neues Tag zuzuordnen-post" - Privileg. Ich wäre dankbar, wenn einer seriösen Besucher Hinzugefügt tag für mich. Danke.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den code in dieser version der Antwort ist im wesentlichen unverändert aus der vorherigen version. Allerdings wurde der text umgeschrieben, um (1) beschreiben, meine Erfahrungen mit dieser Art von Projekt, (2) beantworten Sie die wahre Frage und (3) besser zu erklären, die Lösung.
Meine Erfahrungen mit dieser Art von Projekt
Habe ich mit fünf solcher Projekte. In jedem Fall hat der AUFTRAGGEBER glaubten, dass Sie erforderlich für die automatische Erstellung von charts, aber eine detaillierte Diskussion zeigte, dass dies war nicht die Anforderung. Die Kunden veröffentlichte eine beträchtliche Anzahl von Diagrammen pro Monat, aber die meisten der charts waren die gleichen wie letzten Monat, aber mit neuen Daten. Sie mussten automatisieren Sie die Bereitstellung neuer Daten für die charts. Jeden Monat einige Diagramme wurden überarbeitet, sondern diesem wurde Menschen vereinbaren bessere Möglichkeiten, die Darstellung der Daten. Sie wollten die 90% der Diagramme, die unverändert waren, um durch zu gehen, ohne jede Anstrengung und Durchführung der Revisionen werden so einfach wie möglich.
In diesem Fall, der Fragesteller veröffentlicht 100 charts pro Monat in form von einer Excel-Arbeitsmappe. Die Daten für diese Diagramme stammen aus einer Access-Datenbank. Die Lösung ermöglicht die Diagramme problemlos verändert werden, aber dies ist zur Erleichterung der Programmierung und nicht mehr als angefordert wurde.
Release Template.xls
Die Lösung erfordert ein hand-in Handarbeit-Arbeitsmappe mit dem Namen Release Template.xls. Diese Arbeitsmappe enthält alle Diagramme und die im Monat 1-Daten. Die Lösung erstellt eine Kopie der Arbeitsmappe mit dem Namen Release YYMM.xls in dem Monat 1 Daten überschrieben wurden MM/YY Daten.
Release Template.xls enthält ein Arbeitsblatt, Params, die gelöscht werden aus der release-version. Dieses Arbeitsblatt hat eine Titelzeile und eine Datenzeile pro chart. Es gibt fünf Spalten: Blatt-Namen, den Bereich, die Anzahl der Zeilen, Anzahl der Spalten und SQL-Befehl.
Blatt Name und Wertebereich bestimmen Sie den Speicherort der Quelldaten für das Diagramm.
Anzahl der Zeilen und Anzahl der Spalten definieren Sie die Größe des Bereichs. Diese Werte erzeugt werden sollen, aus dem Bereich (oder Umgekehrt), aber diese generation ist nicht schwer und seine Eingliederung erschweren würde, die Antwort für wenig Vorteil.
SQL-Befehl ist der Befehl, um verwendet werden, um die Extraktion der Daten für das Diagramm aus der Datenbank. Der folgenden code wird davon ausgegangen Sie den SQL-Befehl erzeugt ein Recordset mit Daten bereit zu fallen, in das Arbeitsblatt ein.
Diese Parameter werden in der Access-Datenbank, aber ich glaube, Sie passen logisch in die Arbeitsmappe. Diese Parameter Steuern, um Daten aus der Access-Datenbank und in die Excel-Arbeitsmappe. Wenn ein Diagramm geändert wird, so dass es erfordert neue Daten, müssen Sie diese Parameter werden geändert, um zu entsprechen, aber keine änderung ist erforderlich, um den code.
Umschlag
Wenn dieser code geprüft wurde, war es in einem Access-Modul. Es könne wohl übertragen werden, aber das wurde nicht getestet. Es MUSS ein Verweis auf die "Microsoft Excel 11.0 Object Library".
Dieser Umschlag sollte geeignet sein für ähnliche problem.
Code zu erzeugen, kopieren Sie die Daten in der Arbeitsmappe
Dieser code davon aus, dass es möglich ist, zum erstellen von SQL-Statements generiert Recordsets Daten bereit zu fallen, in die Arbeitsmappe.
Dieser code wurde teilweise getestet. Die tests von Parametern definierten Bereiche in der Arbeitsmappe, die mit der Größe der Parameter. Die geladenen Daten in Params() wurde geschrieben, um diese Bereiche.