通过visual basic自动化JMP:将Excel数据复制到JMP数据表。大家好,
下面的脚本应该执行以下操作:它运行VBA代码,将excel工作簿数据复制到JMP表(使用JMP库jmp.tlb)。第一部分旨在加载excel中的参考JMP,以便可以运行与JMP自动化相关的功能。第二部分将所有workboook表导出到JMP数据表。当我运行此代码时,我收到以下错误:用户定义的类型未定义
Dim MyJMP作为JMP.Application 线。 如果我单独运行第一部分,代码就可以工作:它为JMP引用设置了一个复选标记(在VBA编辑器的工具>>引用下)。如果我运行第二部分(在工具>>引用下手动设置JMP的复选标记后),它也可以运行。因此我不明白出了什么问题。任何帮助赞赏:-)非常感谢!
爱德华多
子出口()
'添加JMP参考
'第1部分
On Error Resume Next
Application.VBE.ActiveVBProject.References.AddFromFile _
“C:\ Program Files \ SAS \ JMP \ 12 \ jmp.tlb”
On Error GoTo 0
'此部分将excel工作簿中的所有选项卡导出为JMP作为表
'第2部分
Dim MyJMP作为JMP.Application
Dim JMPdoc作为JMP.Document
设置MyJMP = CreateObject(“JMP.Application”)
MyJMP.Visible = True
设置JMPdoc = MyJMP.OpenDocument(ThisWorkbook.FullName)
Dim JMPdt作为JMP.DataTable
设置JMPdt = JMPdoc.GetDataTable
结束子
Re:通过visual basic自动化JMP:将Excel数据复制到JMP数据表。我会补充 @markbailey 通过指向Application Builder上的文档
帮助==>图书==>脚本指南
查找“创建应用程序”一章
除了使用Application Builder之外,JMP脚本语言还有一整套显示对象,可以构建您想要的任何UI。 可以在JMP随附的示例脚本和应用程序中找到示例,也可以在JMP网站上的JMP文件交换中的许多JMP附件中找到示例
Re:通过visual basic自动化JMP:将Excel数据复制到JMP数据表。选择文件 > 新 > 应用 。
Re:通过visual basic自动化JMP:将Excel数据复制到JMP数据表。我想知道为什么JMP不开发平台来在JMP中创建可自定义的窗体或UI,我们使用VB的原因是因为我们想要完全自动化数据提取,数据处理和数据分析。
Re:通过visual basic自动化JMP:将Excel数据复制到JMP数据表。您是否阅读过有关使用Visual Basic自动化JMP的JMP文档?如果没有,那是最好的起点。(请参阅Documentation文件夹中的Automation Reference PDF。)然后,请参阅Samples / Automation文件夹以获取示例代码。
Re:通过visual basic自动化JMP:将Excel数据复制到JMP数据表。大家好,
我正在寻找通过visual basic自动化JMP的代码。
任何完成的请与我分享。感谢您对此主题的帮助。
谢谢。
Re:通过visual basic自动化JMP:将Excel数据复制到JMP数据表。为什么不将export Sub移动到VBScript文件?听起来似乎同时运行这两个任务存在问题。
您可以使用VBScript中的COM接口(没有jmp.tlb类型库)自动执行JMP。看看这个白皮书有关以这种方式自动化JMP的一些信息,包括使用VBScript的示例。
但是,查看您的程序流程,您似乎只是尝试将Excel工作表导入JMP表。如果是这样,您可以使用Open()函数进行导入。
Re:通过visual basic自动化JMP:将Excel数据复制到JMP数据表。大家好,
我设法缩小了问题所在 。我简化了一切。现在我有一个启用宏的excel工作簿,其中包含以下宏:
子出口()
Dim MyJMP作为JMP.Application
Dim 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.Save
objExcel.ActiveWorkbook.Close
objExcel.Application.Quit
WScript.Echo“完成了。”
WScript.Quit
最后我有以下一行 JMP脚本 :
rp = RunProgram(可执行文件(“WSCRIPT.EXE”),选项(“\!”\\ vfc1home1 \ home1 \ eosorio \ Profile \ Documents \ vbs scripts \ exportJMP.vbs \!“”),读取功能(“文本”) );
现在这就是一切运行的方式 :我跑我的 JMP脚本 ,它叫我的 VBS脚本 ,然后最终执行excel宏出口 。但是在执行时出口宏观整个事情挂起和excel产生以下消息: Microsoft excel正在等待另一个应用程序来完成一个OLE动作....而JMP上的轮子正在旋转:)
任何帮助超级赞赏!谢谢!
Re:通过visual basic自动化JMP:将Excel数据复制到JMP数据表。大家好,
我发现自己解决了我的问题,但后来又找到了另一个。我要做的是如下:JMP脚本调用VBS脚本。VBS脚本运行excel加载项。excel加载项获取数据文件,处理它并生成工作簿。然后VBS继续并在工作簿中引入两个宏。一个宏用于激活JMP引用(jmp.tlb),第二个宏用于最终导出工作簿的所有工作表作为JMP表。我已经附加了JMP代码,下面是VBS代码(也许对其他人来说这很有趣)。现在这就是一切运行的方式:加载项运行,工作簿创建,但随后它挂起(Excel显示以后:Microsoft Excel正在等待另一个应用程序完成OLE操作)。然后我试着改变runprogram命令的语法:我写了Read函数(),而不是写Read函数(“text”)。整个事情运行(它甚至弹出来自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)
strCode = _
“sub ref()”&vbCr&_
“On Error Resume Next”&vbCr&_
“Application.VBE.ActiveVBProject.References.AddFromFile _”&vbCr&_
msgstr“”“C:\ Program Files \ SAS \ JMP \ 12 \ jmp.tlb”“”&vbCr&_
“On Error GoTo 0”&vbCr&_
“结束子”
xlmodule.CodeModule.AddFromString strCode
objExcel.Application.Run“ref”
设置xlmodule = objworkbook2.VBProject.VBComponents.Add(1)
strCode = _
“sub export()”&vbCr&_
“Dim MyJMP As JMP.Application”&vbCr&_
“Dim JMPdoc As JMP.Document”&vbCr&_
“设置MyJMP = CreateObject(”“JMP.Application”“)”&vbCr&_
“MyJMP.Visible = True”&vbCr&_
“设置JMPdoc = MyJMP.OpenDocument(ThisWorkbook.FullName)”&vbCr&_
“Dim JMPdt As JMP.DataTable”&vbCr&_
“设置JMPdt = JMPdoc.GetDataTable”&vbCr&_
“结束子”
xlmodule.CodeModule.AddFromString strCode
objExcel.Application.Run“导出”
objworkbook2.Save
objExcel.ActiveWorkbook.Close
objExcel.Application.Quit
WScript.Echo“完成了。”
WScript.Quit