通过 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 提供的示例脚本和应用程序中找到,也可以在 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.退出