通過 Visual Basic 實現 JMP 自動化:將 Excel 數據複製到 JMP 數據表。大家好,
下面的腳本應該執行以下操作:它運行一個 VBA 代碼,將 excel 工作簿數據複製到 JMP 表(使用 JMP 庫 jmp.tlb)。 第一部分旨在在 excel 中加載參考 JMP,以便與 JMP 自動化相關的功能可以運行。 第二部分將所有工作簿表導出到 JMP 數據表。 當我運行這段代碼時,出現以下錯誤:User-defined type not defined at the
將 MyJMP 調暗為 JMP.Application線。如果我單獨運行第一部分,代碼會起作用:它會為 JMP 引用設置一個複選標記(在 VBA 編輯器的工具 >> 引用下)。 如果我運行第二部分(在工具>>參考下手動設置 JMP 的複選標記之後),它也可以工作。 因此我不明白哪裡出了問題。 任何幫助表示讚賞:)非常感謝!
愛德華多
子導出()
'添加 JMP 參考
'第1部分
出錯繼續下一步
應用程序.VBE.ActiveVBProject.References.AddFromFile _
“C:\Program Files\SAS\JMP\12\jmp.tlb”
錯誤轉到 0
'這部分將excel工作簿中的所有選項卡作為表格導出到JMP
'第2部分
將 MyJMP 調暗為 JMP.Application
將 JMPdoc 調暗為 JMP.Document
設置 MyJMP = CreateObject("JMP.Application")
MyJMP.Visible = True
設置 JMPdoc = MyJMP.OpenDocument(ThisWorkbook.FullName)
將 JMPdt 調暗為 JMP.DataTable
設置 JMPdt = JMPdoc.GetDataTable
結束子
回复:通過 visual basic 實現 JMP 自動化:將 excel 數據複製到 JMP 數據表。我會添加到@馬克貝利通過將您指向 Application Builder 上的文檔
幫助==>書籍==>腳本指南
查找有關“創建應用程序”的章節
除了使用 App 開發器之外,JMP 腳本語言還有一整套顯示對象,可以構建您想要的任何 UI。示例可在 JMP 提供的示例腳本和 App 中找到,也可在 JMP 網站上 JMP 文件交換中提供的許多 JMP 插件中找到
回复:通過 visual basic 實現 JMP 自動化:將 excel 數據複製到 JMP 數據表。選擇文件>新的>應用.
回复:通過 visual basic 實現 JMP 自動化:將 excel 數據複製到 JMP 數據表。我想知道為什麼 JMP 不開發一個平台來在 JMP 中創建可定制的窗口窗體或 UI,我們使用 VB 的原因是因為我們希望一起完全自動化數據提取、數據處理和數據分析。
回复:通過 visual basic 實現 JMP 自動化:將 excel 數據複製到 JMP 數據表。您是否閱讀過有關使用 Visual Basic 自動化 JMP 的 JMP 文檔? 如果沒有,那是最好的起點。 (請參閱 Documentation 文件夾中的 Automation Reference PDF。)然後查看示例代碼的 Samples/Automation 文件夾。
回复:通過 visual basic 實現 JMP 自動化:將 excel 數據複製到 JMP 數據表。大家好,
我正在尋找通過 Visual Basic 實現 JMP 自動化的成功代碼。
任何完成的人請與我分享。 感謝您對此主題的幫助。
謝謝。
回复:通過 visual basic 實現 JMP 自動化:將 excel 數據複製到 JMP 數據表。為什麼不將導出 Sub 移動到 VBScript 文件? 聽起來同時運行這兩個任務有問題。
您可以在 VBScript 中使用 COM 接口(沒有 jmp.tlb 類型庫)自動執行 JMP。 看看這個白皮書有關以這種方式自動化 JMP 的一些信息,包括使用 VBScript 的示例。
但是,查看您的程序流程,您似乎只是在嘗試將 Excel 工作表導入 JMP 表。 如果是這樣,您可以只使用 Open() 函數進行導入。
回复:通過 visual basic 實現 JMP 自動化:將 excel 數據複製到 JMP 數據表。大家好,
我設法縮小了問題所在. 我簡化了一切。 現在我有一個啟用宏的 excel 工作簿,其中包含以下宏:
子導出()
將 MyJMP 調暗為 JMP.Application
將 JMPdoc 調暗為 JMP.Document
設置 MyJMP = CreateObject("JMP.Application")
MyJMP.Visible = True
設置 JMPdoc = MyJMP.OpenDocument(ThisWorkbook.FullName)
結束子
如果我運行這個宏從 excel ,它做了它應該做的。 它將工作簿的工作表作為 JMP 表導出到 JMP。
然後我還有以下VBS腳本使用以下代碼:
設置 objExcel = CreateObject("Excel.Application")
設置 objWorkbook = objExcel.Workbooks.Open("\\vfc1home1\home1\eosorio\Profile\Documents\vbs scripts\test.xlsm")
objExcel.Application.Visible = True
objExcel.Application.Run "ref" ---> 這會加載 jmp.tlb
設置 objWorkbook2 = objExcel.ActiveWorkbook
objExcel.Application.Run "export" ---> 這會運行出現問題的宏如果從我的 VBS 調用
objworkbook2.保存
objExcel.ActiveWorkbook.關閉
objExcel.Application.Quit
WScript.Echo “完成。”
WScript.退出
最後我有以下一行JMP腳本:
rp = RunProgram( Executable( "WSCRIPT.EXE" ), Options( "\!"\\vfc1home1\home1\eosorio\Profile\Documents\vbs scripts\exportJMP.vbs\!"" ), 讀取函數("文本"));
現在這就是一切運行的方式: 我運行我的JMP腳本, 它叫我的VBS腳本,然後最終執行 excel 宏出口. 但是當執行導出宏整個事情掛起,excel 產生以下消息: Microsoft excel 正在等待另一個應用程序完成 OLE 操作....而 JMP 上的輪子正在旋轉 
非常感謝任何幫助! 謝謝!
回复:通過 visual basic 實現 JMP 自動化:將 excel 數據複製到 JMP 數據表。大家好,
我找到了解決問題的方法,但後來又得到了另一個。 我正在嘗試做的事情如下:一個 JMP 腳本調用一個 VBS 腳本。 VBS 腳本運行一個 excel 加載項。 excel 加載項獲取數據文件,對其進行處理並生成工作簿。 然後 VBS 繼續並在工作簿中引入兩個宏。 一個宏用於激活 JMP 引用 (jmp.tlb),第二個宏用於最終將工作簿的所有工作表導出為 JMP 表。 我附上了 JMP 代碼,下面是 VBS 代碼(也許這對其他人來說很有趣)。 現在這就是一切運行的方式:加載項運行,工作簿創建,但隨後掛起(Excel 稍後顯示:Microsoft excel 正在等待另一個應用程序完成 OLE 操作)。 然後我嘗試更改我的 runprogram 命令的語法:我沒有寫 Read function ("text"),而是寫了 Read function ()。 整個過程都在運行(它甚至從 VBS 中彈出“完成”消息)但是 runprogram commad 之後發生的事情不起作用。 從我運行 JMP 腳本的那一刻起,ntables=0。 看起來 JMP 腳本運行 VBS 腳本並並行運行 runprogram 命令之後的內容,並且由於此時沒有表,因此 ntables=0。 我不明白。 我想我使用了錯誤的 runprogram 命令方式,這就是我的問題。 一定很容易,但找不到它。 任何幫助表示讚賞!謝謝!
文件調用 myAddin.vbs
設置 objExcel = CreateObject("Excel.Application")
設置 objWorkbook = objExcel.Workbooks.Open("C:\Users\eduret\AppData\Roaming\Microsoft\AddIns\Gamma Tools.xla")
objExcel.Application.Visible = True
objExcel.Application.Run "'Gamma Tools.xla'!Pics"
設置 objWorkbook2 = objExcel.ActiveWorkbook
設置 xlmodule = objworkbook2.VBProject.VBComponents.Add(1)
海峽代碼= _
"sub ref()" & vbCr & _
“錯誤繼續下一個” & vbCr & _
"Application.VBE.ActiveVBProject.References.AddFromFile _" & vbCr & _
"""C:\Program Files\SAS\JMP\12\jmp.tlb""" & vbCr & _
“錯誤轉到 0”& vbCr & _
“結束子”
xlmodule.CodeModule.AddFromString strCode
objExcel.Application.Run "參考"
設置 xlmodule = objworkbook2.VBProject.VBComponents.Add(1)
海峽代碼= _
“子導出()”&vbCr&_
“將 MyJMP 調暗為 JMP.Application”& vbCr & _
“將 JMPdoc 調暗為 JMP.Document”& vbCr & _
"Set MyJMP = CreateObject(""JMP.Application"")" & vbCr & _
"MyJMP.Visible = True" & vbCr & _
“設置 JMPdoc = MyJMP.OpenDocument(ThisWorkbook.FullName)”& vbCr & _
“將 JMPdt 調暗為 JMP.DataTable”& vbCr & _
“設置 JMPdt = JMPdoc.GetDataTable” & vbCr & _
“結束子”
xlmodule.CodeModule.AddFromString strCode
objExcel.Application.Run“導出”
objworkbook2.保存
objExcel.ActiveWorkbook.關閉
objExcel.Application.Quit
WScript.Echo “完成。”
WScript.退出