Ich schrieb einen einfachen VBA-Code, um die X-Achse vieler Zeitreihendiagramme in einem Excel-Dokument zu aktualisieren.Warum werden die Eingabefeldvariablen nach der ersten Iteration einer Schleife auf Null geschaltet?
Das Problem, das ich habe, ist, dass nach der ersten Wiederholung der Schleife Startdatum und Enddatum Variablen werden "". Ich bin mir nicht sicher, warum die Variablen verschwinden. Das Makro funktioniert für das erste Diagramm aber stürzt danach wegen des Variablenproblems ab.
Dies ist mein Code:
Sub xaxis_reset()
Dim start_date As Variant
Dim end_date As Variant
Dim ws As Integer
Dim obj As Integer
start_date = InputBox("Start Date")
end_date = InputBox("End Date")
ws = ActiveWorkbook.Worksheets.Count - 2
For w = 1 To ws
obj = Worksheets(w).ChartObjects.Count
For Z = 1 To obj
Worksheets(w).ChartObjects(Z).Activate
With ActiveChart
.Axes(xlCategory).MinimumScale = start_date
.Axes(xlCategory).MaximumScale = end_date
End With
Next Z
Next w
End Sub
Danke
Wie nennt man das Makro? w und Z sind nicht definiert. Das Problem könnte durch die Aktivierung des Diagramms verursacht werden. Versuchen Sie, es zu entfernen. –
@VincentG Ich habe versucht, die Diagrammaktivierung herauszunehmen und habe immer noch das gleiche Problem. Meine Schlussfolgerung ist, dass dies ein Excel-Fehler ist. Wenn ich den Code ausführe, schließt sich der Code zufällig. Es ist geschlossen, während ich durch den Code gehe, er ist geschlossen, wenn der Code abstürzt und ich auf "Debug" oder "Ende" klicke. Aus irgendeinem Grund hasst Excel den obigen Code wirklich. – Jarom
Warum das Diagramm aktivieren und dann die Achsen einstellen? Sie sollten einfach in der Lage sein, "Mit Worksheets (w) .ChartObjects (Z)" zu sagen. Ich sehe auch nichts, das deine Variablen zurücksetzen sollte. Sind Sie sicher, dass sie innerhalb der Schleife zurückgesetzt werden? –