Ich habe ein Problem beim Erstellen eines Makros, um Diagrammtitel und Achsentitel in meine Diagramme einzufügen. Ich habe online gesucht und Vorschläge mit ActiveChart.SetElement und ActiveChart.HasTitle = True, aber ich kann nicht arbeiten. Ich vermute, dass mein Problem in der Tatsache liegt, dass mehrere Grafiken gleichzeitig erstellt werden. Der Code, den ich verwende, ist unten:Diagrammtitel und Achsentitel zu gruppierten Diagrammen hinzufügen
Sub Plotting()
Dim LR As Long
LR = ActiveSheet.UsedRange.Rows.Count
Dim aSheet As Worksheet
For Each aSheet In ActiveWorkbook.Worksheets 'Strain vs Time
With aSheet.Shapes.AddChart.Chart
.ChartType = xlXYScatterSmoothNoMarkers
.SetSourceData Source:=aSheet.Range(" '" & aSheet.Name & "'!B3:B15000,'"
& aSheet.Name & "'!G3:G15000")
End With
Next
For Each aSheet In ActiveWorkbook.Worksheets 'Stress vs Time
With aSheet.Shapes.AddChart.Chart
.ChartType = xlXYScatterSmoothNoMarkers
.SetSourceData Source:=aSheet.Range(" '" & aSheet.Name & "'!B3:B15000,'"
& aSheet.Name & "'!H3:H15000")
End With
Next
For Each aSheet In ActiveWorkbook.Worksheets 'Stress vs Strain
With aSheet.Shapes.AddChart.Chart
.ChartType = xlXYScatterSmoothNoMarkers
.SetSourceData Source:=aSheet.Range(" '" & aSheet.Name & "'!G3:G15000,'"
& aSheet.Name & "'!H3:H15000")
End With
Next
End Sub
Ich würde jede mögliche Hilfe schätzen, die ich erhalten kann.
Domenic löste das Anfangsproblem und jetzt habe ich Arbeitscode. Jetzt versuche ich, den Y-Achsentitel so umzuorientieren, dass er an die Achse angrenzt. Ich habe dies versucht:
For Each aSheet In ActiveWorkbook.Worksheets 'Strain vs Time
With aSheet.Shapes.AddChart.Chart
.ChartType = xlXYScatterSmoothNoMarkers
.SetSourceData Source:=aSheet.Range("'" & aSheet.Name &
"'!B3:B15000,'" & aSheet.Name & "'!G3:G15000")
.SetElement msoElementChartTitleAboveChart
.SetElement msoElementPrimaryCategoryAxisTitleBelowAxis
.SetElement msoElementPrimaryValueAxisTitleAdjacentToAxis
.ChartTitle.Text = "MyChartTitle" 'change the chart title as desired
.Axes(Type:=xlCategory, AxisGroup:=xlPrimary).AxisTitle.Text =
"MyCategoryAxisTitle" 'change the category axis title as desired
.Axes(Type:=xlValue, AxisGroup:=xlPrimary).AxisTitle.Text =
"MyValueAxisTitle" 'change the value axis title as desired
End With
Next
Wenn ich den Code ausführen I ‚Laufzeitfehler‚424‘erhalten: Objekt erforderlich, und die Zeile, in der Y-Achse gestattet wird hervorgehoben. Irgendeine Einsicht, was ich falsch mache?
Dies funktioniert, aber der Achsentitel wird horizontal.
Dies ist, was ich möchte, dass die Ausgabe im Idealfall aussieht.
Es hat super funktioniert! Müssen SetElements definiert werden, bevor sie benannt werden können? Ich habe einen ähnlichen Ansatz wie früher versucht, aber aus irgendeinem Grund hat es nicht funktioniert. – Cyrus
Ja, Sie müssen zuerst die Elemente festlegen, damit die entsprechenden Objekte verfügbar sind. – Domenic
Irgendeine Idee, wie man die Y-Achsenbeschriftung neben der Achse anbringt? Ich habe es versucht: – Cyrus