<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />VBA自動化。 我注意到在腳本完成之前圖表才會啟動。 我需要在腳本運行時看到它們,有沒有辦法解決這個問題?
另外,我認為相關。宏創建了幾個圖表。 但看似隨意的一些未能發射。 它們出現在主窗口的“窗口”列表中,但在手動啟動之前不會顯示。 我假設我做錯了什麼,但不知道它是什麼。
謝謝你的幫助。
我認為這是更可取的。每次在子例程中創建JMP實例,然後在退出時將應用程序指針置空,就會出現自動化問題。創建JMP實例並將其傳入,確保其生命週期持續整個操作的長度,通常是最好的方法。
在您的情況下,底層窗口的初始化可能是問題。看起來你的新方法給了他們更多的時間來創建,所以當你讓它們可見時,初始化就完成了,快速退出不會對事情造成傷害。
布賴恩
我可能已經找到了問題,也許你可以發表評論。
代碼生成了一系列圖表,然後發送要啟動並可見的圖表數組
事實證明這是不穩定的並且取決於時間。 即 - 使用更大的數據表會更頻繁地失敗
環
生成圖表(索引)
下一個
環
圖表(指數).Launch
圖表(索引).Visable = True
下一個
我將其更改為在生成時啟動圖表並發送圖表數組以使其可見。
到目前為止,我沒有觀察到任何令人憎惡的行為
環
生成圖表(索引)
圖表(指數).Launch
下一個
環
圖表(索引).Visable = True
下一個
這對我來說可能很難復制。 我建議在可見調用之後在實際的LaunchCharts子例程中嘗試Sleep。 最後將變量設置為Nothing,雖然良好的做法,但確實意味著它們可以被關閉。
布賴恩
我可以通過添加更多Sleep()來使情況變得更糟。 此配置通常無法啟動第一個圖表,但隨後將啟動所有圖表。
Sub GenChartsReview(過濾為變體,_
Group As Variant,_
Iter1作為變體,_
Iter2 As Variant,_
Iter3 As Variant,_
Stats As Variant,_
迭代為布爾值)
Dim APPjmp,TBLjmp,DOCjmp
GetJMP APPjmp,TBLjmp,DOCjmp
昏暗的文本作為字符串
Dim Success As Boolean
Dim Stat,A,B,C,Index,PlotIndex,RowFilter()
昏暗的VChart()作為JMP.Variability
如果迭代那麼
如果IsReal(Iter1)那麼ReDim VChart((UBound(Iter1,2)+ 1))
如果IsReal(Iter2)那麼ReDim VChart(UBound(VChart)*(UBound(Iter2,2)+ 1))
其他
ReDim VChart(1)
萬一
指數= 0
對於A = 0到UBound(Iter1,2)
對於B = 0到UBound(Iter2,2)
成功=真
擦除RowFilter()
AddFilters RowFilter,Filter
ClearRowStates TBLjmp
如果IsValid(RowFilter)則Success = ExcludeGroup(RowFilter,TBLjmp)
的DoEvents
如果迭代那麼
如果IsReal(Iter1)則IncludeItem Iter1(0,A),Iter1(1,A),TBLjmp
的DoEvents
如果IsReal(Iter2)則IncludeItem Iter2(0,B),Iter2(1,B),TBLjmp
的DoEvents
萬一
設置VChart(Index)= DOCjmp.CreateVariabilityChart
如果成功然後GenerateVarCharts VChart(索引),統計,組
的DoEvents
指數=指數+ 1
睡200
下一個
下一個
睡500
如果成功那麼
LaunchCharts VChart
其他
DialogAndLive“沒有數據繪圖,是否選擇了過濾項目?”
萬一
的DoEvents
ClearRowStates TBLjmp
設置APPjmp = Nothing
設置TBLjmp =無
設置DOCjmp = Nothing
結束子
Sub LaunchCharts(VChart()作為JMP.Variability)
昏暗的A.
對於A = 0到UBound(VChart) - 1
VChart(A).Launch
VChart(A).Visible = True
下一個
結束子
如果使用“高級編輯器”,則左下角會顯示“附加”圖標。 或者,你可以粘貼你的VB代碼,讓我知道你在做什麼。
布賴恩
嗨布萊恩,
我非常感謝你的幫助。 我沒有找到附加任何內容的任何規定。
嗨馬特,
當你發布它時,我道歉地以某種方式錯過了這個。 您能提供您正在使用的VBA源代碼嗎?通常,如果在出現計時問題時在代碼中調用sleep(),它可以幫助分析時間來創建窗口。 隨JMP一起提供的Analysis自動化示例程序(c:\ program files \ sas \ jmp \ 13 \ Samples \ Automation \ Visual Basic Samples \ Analysis.NET)提供了設置睡眠調用的示例。 您必須聲明您正在調用操作系統函數。 我使用13作為路徑的示例,但此代碼在最後5個版本的JMP中提供。
我希望有幫助,
Brian Corcoran
JMP開發