Der folgende Code ist zum Erstellen eines Diagramms in jedem Arbeitsblatt in einer Arbeitsmappe. Ich fand diesen Code online und änderte ihn für das, was ich brauchte. Ich bin ein Anfänger bei VBA und bin nicht sicher, wie man Codes mit "mit" Aussagen manipuliert. Dieser Code funktionierte großartig, bis ich die Information in Zelle B1, meinem Diagrammtitel, änderte. Seitdem hat mein Code 2 Serien erstellt. Serie 2 wird nicht in der Grafik gezeichnet, sondern in der Legende angezeigt. Wenn ich auf das Diagramm klicke, um die Daten zu sehen, die es sammelt, füllt es sich nicht, bitte sehen Sie imgur Link, [1]: https://i.stack.imgur.com/n1jPc.jpg, für die Visualisierung. Wenn ich die Serie, die ich behalten möchte, sehe, zeigt sie A3: A630 und B3: B630.Ausblenden von Serien im Diagramm in Excel VBA
Wie kann ich diese Serie 2 löschen? Außerdem habe ich Text in A1 eingegeben und Serie 3 erstellt. Ich möchte sicherstellen, dass nur Serie 1 in meinem Diagramm sichtbar ist.
Ich habe bereits versucht, das Makro für das Löschen der Serie und die Verwendung in meinem Code, aber ich kann immer erhalten, kann nicht wegen der Code-Unterbrechung fortgesetzt werden. Das aufgezeichnete Makro gab ActiveSheet.ChartObjects („Chart 1“). Aktivieren Sie ActiveChart.FullSeriesCollection (2) .Delete
Ich habe auch einen Weg zu verstecken die Serie gefunden, aber noch einmal, wenn ich stecken Sie ihn nach meinem. SeriesCollection Block es gibt den Fehler "Code einbrechen". Selection.Format.Line.Visible = msoFalse
Originalcode für die Erstellung von Charts
Sub chartcreation()
Dim sh As Worksheet
Dim chrt As Chart
For Each sh In ActiveWorkbook.Worksheets
Set chrt = sh.Shapes.AddChart.Chart
With chrt
'Data?
.ChartType = xlXYScatterSmooth
.SeriesCollection.NewSeries
.SeriesCollection(1).Name = sh.Range("B1").Value
.SeriesCollection(1).XValues = sh.Range("$A$3:$A$630")
.SeriesCollection(1).Values = sh.Range("$B$3:$B$630")
'Titles
.HasTitle = True
.ChartTitle.Text = sh.Range("B1").Value
.Axes(xlCategory, xlPrimary).HasTitle = True
.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = sh.Range("A2")
.Axes(xlValue, xlPrimary).HasTitle = True
.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = sh.Range("B2")
'Formatting
.Axes(xlCategory).HasMinorGridlines = False
.Axes(xlValue).HasMajorGridlines = True
.Axes(xlCategory).MinimumScale = 15
.Axes(xlCategory).MaximumScale = 90
.Axes(xlValue).HasMinorGridlines = False
.Axes(xlValue).MinimumScale = 0
.Axes(xlValue).MaximumScale = 60
.HasLegend = True
End With
Next
End Sub
Wenn die zwei oben genannten Optionen für den Code zu modifizieren völlig falsch sind, ich folgendes gefunden haben Code, der jedes Diagramm auf jedem Arbeitsblatt durchläuft und die Reihe löscht, aber ich kann nicht herausfinden, wie ich es für meine Bedürfnisse modifiziere. Private Sub Workbook_Open()
Dim Sht As Worksheet
Dim ShtName As String
Dim R As Range
Dim ASht As Worksheet
Set R = ActiveCell 'Save the activecell
Set ASht = ActiveSheet 'Save the activesheet
Application.ScreenUpdating = False
For Each Sht In ActiveWorkbook.Sheets
ShtName = Sht.Name
Select Case ShtName
Case "One", "Two", "Three" 'Charts are on multiple sheets
Call DeleteLegendEntries(Sht)
End Select
Next Sht
ASht.Activate 'Back to original sheet
R.Activate 'Back to original cell
Application.ScreenUpdating = True
End Sub
Wieder einmal würde Ich mag alle Serien außer Reihe 1 verstecken oder zu löschen, die ich umbenannt, in einer Arbeitsmappe in jedem Arbeitsblatt. Vielen Dank im Voraus für Ihre Hilfe.