Ich habe ein ChartObject mit dem Namen "GFATMEN", die die Legende aktualisieren muss, wenn ich einige Formularsteuerungs-Kontrollkästchen in einer Kalkulationstabelle überprüfen. Sie werden verwendet, damit ich einige Daten auf der Karte anzeigen kann oder nicht, und ich brauche die Legende, um angezeigt zu werden oder nicht.Excel VBA bricht von Sub-Aufruf
Zum Beispiel habe ich diese Unter wenn eine Checkbox angeklickt wird:
Private Sub MerT_Click()
Application.ScreenUpdating = False
On Error Resume Next
ActiveSheet.ChartObjects("GFATMEN").Activate
If ActiveSheet.SeriesCollection.Count = 3 Then
With ActiveChart
If MerT = False Then
.SeriesCollection(3).Format.Line.Visible = msoFalse
Call show_legend
Else
.SeriesCollection(3).Format.Line.Visible = msoTrue
Call show_legend
End If
End With
End If
Application.ScreenUpdating = True
End Sub
Sie ruft die anderen Unter show_legend
, dass die Legende und formatiert sie neu erstellt:
Sub show_legend()
ActiveSheet.ChartObjects("GFATMEN").Activate
With ActiveChart
.HasLegend = False
.HasLegend = True
.Legend.Position = xlLegendPositionBottom
.Legend.Font.Name = "Tahoma"
.Legend.Font.Size = 10
.Legend.Font.ForeColor.Brightness = 0.25
End With
If MerT = False Then ActiveChart.Legend.LegendEntries.Item(3).Delete
If MerE = False Then ActiveChart.Legend.LegendEntries.Item(2).Delete
If MerI = False Then ActiveChart.Legend.LegendEntries.Item(1).Delete
End Sub
Das Problem ist, dass Der Code bricht IMMER vom show_legend
-Sub und kehrt immer zum vorherigen Sub zurück, wenn die Zeile .Legend.Font.ForeColor.Brightness = 0.25
gelesen wird. Ich habe diese Zeile bereits auf einen vorherigen Abschnitt gesetzt, direkt nach der .HasLegend = True
Zeile, und das Gleiche passiert.
Ich konnte keine Antwort finden, die meinem Problem entspricht. Vielen Dank.
Die Kontrollkästchen Mere und Meri sind alle ähnlich U-Boote zu Mert. –
Woher hast du diesen Code? Es gibt keine Font.ForeColor-Eigenschaft. – Rory
Diese Codezeile gibt wahrscheinlich einen Fehler aus, der ignoriert wird, da Sie in der Subdatei "MerT_Click" auf "On Error Resume Next" klicken. – Socii