Diagramm wird nicht unter VBA-Kontrolle gestartet. Wie kann das Problem behoben werden?<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />VBA-Automatisierung. Ich stelle fest, dass Diagramme erst gestartet werden, wenn das Skript beendet ist. Ich muss sie sehen, während das Skript läuft. Gibt es eine Möglichkeit, dies zu beheben?
Ich vermute auch verwandt. Das Makro erstellt mehrere Diagramme. Aber scheinbar zufällig starten einige von ihnen nicht. Sie werden in der Fensterliste im Startfenster angezeigt, werden jedoch erst beim manuellen Start angezeigt. Ich gehe davon aus, dass ich etwas falsch mache, weiß aber nicht, was es ist.
Vielen Dank für jede Hilfe.
Re: Chart startet nicht unter vba-Kontrolle. Wie kann ich das beheben?Ich denke, das ist vorzuziehen. Jedes Mal, wenn Sie die JMP-Instanz in einer Subroutine erstellen und dann den Anwendungszeiger beim Beenden auf Null setzen, kann dies zu Automatisierungsproblemen führen. Das Erstellen der JMP-Instanz und das Übergeben der JMP-Instanz, um sicherzustellen, dass ihre Lebensdauer für die gesamte Dauer des gesamten Betriebs erhalten bleibt, ist in der Regel die beste Lösung.
In Ihrem Fall ist die Initialisierung der zugrunde liegenden Fenster wahrscheinlich das Problem. Ihr neuer Ansatz scheint mehr Zeit für die Erstellung zu haben. Wenn Sie sie sichtbar machen, ist die Initialisierung abgeschlossen, und ein schneller Abbruch schadet nicht.
Brian
Re: Chart startet nicht unter vba-Kontrolle. Wie kann ich das beheben?Ich habe vielleicht das Problem gefunden, vielleicht könnten Sie etwas dazu sagen.
Der Code erzeugte ein Array von Diagrammen und sendete dann das Array von Diagrammen, um gestartet und sichtbar gemacht zu werden
Dies erwies sich als instabil und zeitabhängig. dh - es würde häufiger mit größeren Datentabellen ausfallen
Schleife
Diagramme erstellen (Index)
Nächster
Schleife
Diagramme (Index) .Launch
Diagramme (Index) .Visable = True
Nächster
Ich habe es geändert, um das Diagramm bei der Generierung zu starten und das Array von Diagrammen zu senden, damit es sichtbar wird.
Bisher habe ich kein abscheuliches Verhalten beobachtet
Schleife
Diagramme erstellen (Index)
Diagramme (Index) .Launch
Nächster
Schleife
Diagramme (Index) .Visable = True
Nächster
Re: Chart startet nicht unter vba-Kontrolle. Wie kann ich das beheben?Dies kann für mich schwer zu replizieren sein. Ich würde vorschlagen, nach dem sichtbaren Aufruf einen Schlaf in der aktuellen LaunchCharts-Subroutine zu versuchen. Das Festlegen der Variablen auf Nothing am Ende, während bewährte Verfahren bedeuten, dass sie geschlossen werden können.
Brian
Re: Chart startet nicht unter vba-Kontrolle. Wie kann ich das beheben?Ich kann es noch schlimmer machen, indem ich mehr Sleep () hinzufüge. Bei dieser Konfiguration wird das erste Diagramm normalerweise nicht gestartet, alle nachfolgenden werden jedoch gestartet.
Sub GenChartsReview (Als Variante filtern, _
Als Variante gruppieren, _
Iter1 als Variante, _
Iter2 als Variante, _
Iter3 als Variante, _
Stats als Variante, _
Als boolesche iterieren)
Dim APPjmp, TBLjmp, DOCjmp
GetJMP APPjmp, TBLjmp, DOCjmp
Dim Text als Zeichenfolge
Dim Erfolg als Boolean
Dim Stat, A, B, C, Index, PlotIndex, RowFilter ()
Dim VChart () als JMP.Variabilität
Wenn dann iterieren
Wenn IsReal (Iter1), dann ReDim VChart ((UBound (Iter1, 2) + 1))
Wenn IsReal (Iter2), dann ReDim VChart (UBound (VChart) * (UBound (Iter2, 2) + 1))
Sonst
ReDim VChart (1)
Ende wenn
Index = 0
Für A = 0 bis UBound (Iter1, 2)
Für B = 0 bis UBound (Iter2, 2)
Erfolg = wahr
RowFilter () löschen
AddFilters RowFilter, Filter
ClearRowStates TBLjmp
Wenn IsValid (RowFilter), dann Success = ExcludeGroup (RowFilter, TBLjmp)
Veranstaltungen
Wenn dann iterieren
Wenn IsReal (Iter1), dann IncludeItem Iter1 (0, A), Iter1 (1, A), TBLjmp
Veranstaltungen
Wenn IsReal (Iter2) Dann IncludeItem Iter2 (0,
, Iter2 (1,
, TBLjmp
Veranstaltungen
Ende wenn
Legen Sie VChart (Index) = DOCjmp.CreateVariabilityChart fest
Wenn Erfolg, dann GenerateVarCharts VChart (Index), Stats, Group
Veranstaltungen
Index = Index + 1
Schlaf 200
Nächster
Nächster
Schlaf 500
Wenn Erfolg dann
LaunchCharts VChart
Sonst
DialogAndLive "Keine zu plottenden Daten, sind Filterelemente ausgewählt?"
Ende wenn
Veranstaltungen
ClearRowStates TBLjmp
Set APPjmp = Nichts
Setze TBLjmp = Nichts
Setze DOCjmp = Nichts
End Sub
Sub LaunchCharts (VChart () als JMP.Variabilität)
Dim A
Für A = 0 bis UBound (VChart) - 1
VChart (A) .Launch
VChart (A) .Visible = True
Nächster
End Sub
Re: Chart startet nicht unter vba-Kontrolle. Wie kann ich das beheben?Wenn Sie den "Erweiterten Editor" verwenden, finden Sie links unten ein Symbol "Anhängen". Oder Sie können Ihren VB-Code einfach hinter sich lassen, um mir eine Idee zu geben, was Sie tun.
Brian
Re: Chart startet nicht unter vba-Kontrolle. Wie kann ich das beheben?Hallo Brian,
Ich bin auf jeden Fall dankbar für Ihre Hilfe. Ich finde keine Bestimmung zum Anhängen.
Re: Chart startet nicht unter vba-Kontrolle. Wie kann ich das beheben?Hallo Matt,
Ich entschuldige mich dafür, dass ich das irgendwie vermisst habe, als Sie es gepostet haben. Können Sie den von Ihnen verwendeten VBA-Quellcode bereitstellen? Wenn Sie in Ihrem Code einen Sleep () aufrufen, wenn es Zeitprobleme gibt, kann dies im Allgemeinen hilfreich sein, z. B. indem Sie der Analysezeit Zeit geben, um ein Fenster zu erstellen. Das mit JMP gelieferte Beispiel für die Analyseautomatisierung (C: \ Programme \ sas \ jmp \ 13 \ Samples \ Automation \ Visual Basic-Beispiele \ Analysis.NET) enthält ein Beispiel für das Einrichten des Sleep-Aufrufs. Sie müssen angeben, dass Sie eine Betriebssystemfunktion aufrufen. Ich benutze 13 als Beispiel für den Pfad, aber dieser Code wurde in den letzten 5 Versionen von JMP ausgeliefert.
Ich hoffe das hilft,
Brian Corcoran
JMP-Entwicklung