2017-04-11 5 views
0

Das Problem kann wie folgt zusammengefasst werden: enter image description here Dieses Problem tritt nur auf, wenn ich den Code ausführen, nicht, wenn ich durch die chrt.HasTitle-Linie gehe. In diesem Fall erstellt es korrekt einen Titel und ich kann ihn bearbeiten wie ich will.Einstellung Diagrammtitel funktioniert nur beim Debuggen in Excel 2016


Ich gebe zuerst den relevanten Quellcode. Dies umfasst einfach den Code, der Excel 2003 von neueren Versionen unterscheidet (seit Excel 2003 abstürzt auf den "neueren" Code und umgekehrt).

Sub EnableChartTitle(chrt As Chart) 
    If Application.Version = "11.0" Then 
     EnableChartTitle_2003 chrt 
    Else 
     EnableChartTitle_Post2003 chrt 
    End If 
End Sub 

Sub EnableChartTitle_2003(chrt As Chart) 
    chrt.HasTitle = True 
End Sub 

Sub EnableChartTitle_Post2003(chrt As Chart) 
    chrt.SetElement msoElementChartTitleAboveChart 
End Sub 

Die Verwendung von chrt.SetElement umgangen vorher genau dieses Problem, aber jetzt scheint es mit Office zurück zu sein 2016. die alten chrt.HasTitle Ergebnisse in der gleichen Ausgabe Verwendung mit 2016.

Dieser Code funktioniert perfekt für alle Versionen von Office bis Office 2016. Jetzt weigert es sich plötzlich, den Titel zu aktivieren, es sei denn, ich gehe durch den Code, der natürlich nicht die beabsichtigte Verwendung ist.

Wer weiß, was ist los mit diesem und eine mögliche Lösung? VBA geht mir mit solchen Sachen auf die Nerven und es ist auch sehr schwer Google zu finden. This is where I got the previous solution from.


Hier ist der Code, der das Diagramm erstellt:

Dim chrt As Chart 
RI.rSheet.Activate 
Set chrt = Charts.Add.Location(xlLocationAsObject, RI.rSheet.Name) 

Dann wird seine Position gesetzt, jede Serie, die entfernt und neue Daten werden automatisch hinzugefügt wurden verwendet chrt.SeriesCollection.Add <range> hinzugefügt.

Hinweis: Der exakt gleiche Code funktioniert in einem anderen Skript. Dies liegt daran, dass hier nur eine Reihe hinzugefügt wird. Wenn Sie den Namen der Serie festlegen, aktiviert Excel automatisch den Titel. In diesem Skript werden mehrere Serien hinzugefügt und sobald der zweite Datensatz hinzugefügt wird, wird der Titel automatisch wieder entfernt. Dann wird es nicht mehr aktiviert.

+0

Nur eine nicht-programmatische Lösung auszuschließen, warum Sie lieber einen Titel ermöglichen als nur eine in erster Linie mit? – Absinthe

+0

Weil alles programmgesteuert erfolgt. Der Zweck dieses Skripts besteht darin, viele Arbeitsmappen ohne manuellen Eingriff zu erstellen. Ich habe der Frage Code hinzugefügt, um zu zeigen, wie ich das Diagramm erstelle. – Didii

Antwort

0

Ich fand eine Antwort. Sie müssen VBA zweimal sagen, was er tun muss, bevor er zuhört. Ändern Sie den Code einfach

Sub EnableChartTitle_Post2003(chrt As Chart) 
    chrt.SetElement msoElementChartTitleAboveChart 
    chrt.SetElement msoElementChartTitleAboveChart 
End Sub 

das Problem behoben.

Diese Antwort war nicht zufriedenstellend ...

Verwandte Themen