我收到了许多JMP数据表文件(SAS相关)。我需要遍历包含这些文件的文件夹,打开文件(通过文件的本机JMP应用程序),并将文件保存为SAS数据集数据类型。这些JMP文件无法在SAS中打开,因此必须在JMP软件中打开它们,然后是SAVEAS。可能有超过一百个这样的JMP文件,所以我想自动化这个过程。这是我到目前为止的代码:
Dim objShell
Set objShell = WScript.CreateObject( "WScript.Shell" )
objShell.Run("Jmp.exe C:\SourceFolder\test.jmp")
'
wscript.sleep 8000
objShell.SendKeys "%{F}{A}" '<-- FAILURE #1
wscript.sleep 8000
objShell.SendKeys "C:\DestinationFolder\test.sas7bdat{ENTER}" '<FAILURE #2
wscript.sleep 8000
objShell.SendKeys "%{F}{X}"
'
Set objShell = Nothing
应用程序打开,但SENDKEYS函数不会打开SAVEAS弹出窗口。它只进入FILE菜单(此菜单确实下拉,但“A”不会触发)。
此外,我需要更改SAVEAS对话框中的“另存为类型”文件类型选项,因为文件类型默认为“.jmp”。这需要更改为“.sas7bdat”。只需使用新扩展名保存文件就行不通。
注意:我使用的JMP应用程序是一个30天的试用版应用程序。不确定这是否重要 - 但是,我已经测试了手动打开/保存文件,它确实有效。