<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />您好,我正在查看 JMP 11 中包含的範例程式:
C:\Program Files\SAS\JMP\11\Samples\Automation\Visual Basic Samples\資料表.NET\datatab.vb
由於我沒有 Visual Studio(只有 Excel),因此我用記事本開啟“datatab.vb”,並嘗試將“Subset_Click”過程從 Visual Basic (VB) 轉換為 Visual Basic for Applications (VBA)。 請參閱下面的程式碼範例。
我有幾個問題:
- 為什麼「doc = app.OpenDocument(fname)」會導致執行階段錯誤「物件變數未設定」?
- 資料表子集方法如何運作? 我可以在 Excel VBA 物件瀏覽器中看到這些,但沒有太多細節。
- 資料表句柄如何使用?
感謝您的協助。
'------------------------------------------------- --------
'按體重和身高劃分大類子集
'將新的資料表句柄保存在NewDT中,然後將表作為subset.jmp儲存到磁碟
'------------------------------------------------- --------
子子集()
將應用程式調暗為 JMP.Application
暗淡文檔作為 JMP.Document
將 dt 調暗為 JMP.DataTable
Dim newDT As JMP.DataTable
將 dtDoc 調暗為 JMP.Document
將目錄變暗為字串
將 fname 變暗為字串
'啟動 JMP
設定 app = CreateObject("JMP.Application")
應用程式可見 = True
'取得資料表
dir = "C:\Program Files\SAS\JMP\11\Samples\Data\"
fname = dir & "Big Class.jmp"
doc = app.OpenDocument(fname)
dt = doc.GetDataTable
'子集數據
dt.激活
dt.SubsetSetRandomSelection(2, False)
dt.SubsetStratifyAddColumn(“年齡”)
dt.AddToSubList(「名稱」)
dt.AddToSubList(「權重」)
dt.AddToSubList(“高度”)
newDT = dt.子集
dtDoc = newDT.Document
dtDoc.SaveAs ("C:\JMP\subset.jmp")
結束子
'------------------------------------------------- --------
哇,JMP 安裝目錄中有很多好東西! 自動化參考 PDF 中的方法描述當然很有用。
關於我原來的問題:
- 需要“Set”關鍵字來將物件參考指派給變數。
- 您的評論和圖片幫助我了解子集代碼。
再次感謝!
嗨,JB,
安裝 JMP 11 的文件目錄中安裝了完整的自動化參考。如果您收到錯誤的引用,則表示 JMP 無法啟動(應用程式物件為空),或無法找到 Big Class 資料表且該引用為空。請記住,如果您使用 JMPPro,目錄將是不同的 JMPPRO\11,而不是 JMP\11。其他 JMP 產品也是如此。
樣本正在做一個子集,隨機樣本大小為 2。設定了分層,年齡列用於分層樣本。僅輸出選定的列。在本例中,名稱、身高和體重是選定的欄位。我附上一張圖片,展示如果您以互動方式執行此操作,將會是什麼樣子。
我希望這有幫助,
布萊恩·科科倫
JMP開發