通过R运行.vbs脚本,在任务调度程序中调度



我有一个VBS脚本,它需要一个Excel文件并将其保存为PDF。我把这个vbs称为RScript中的vbs,它是通过任务调度程序自动执行的。当我在R中手动运行时,RScript运行得很好。然而,当我在Task Scheduler中安排它时,任务说它成功完成了,但没有保存PDF文件。什么是不同的任务调度程序运行RScript导致这实际上没有完成?

这是RScript,我已经保存为HourlyR。

shell.exec("C:/test/HourlyNew.vbs")

下面是HourlyNew.vbs

的代码
Option Explicit
ExcelMacro
Sub ExcelMacro()
  Dim xlApp
  Dim xlBook
  Dim xlSheet
  Set xlApp = CreateObject("Excel.Application")
  Set xlBook = xlApp.Workbooks.Open("C:\test\Hourly.xlsm", 0, False)
  Set xlSheet = xlBook.Worksheets("HourlyDashboard")
  xlApp.DisplayAlerts = False
  xlApp.Visible = False

  xlSheet.ExportAsFixedFormat 0, "c:\test\HourlyDashboard.pdf", 0, 1, 0, , , 0
  xlBook.Close
  xlApp.Quit
  Set xlBook = Nothing
  Set xlApp = Nothing
End Sub

下面是我如何设置我的计划任务:

General选项卡:
无论用户是否已登录,都运行
以最高权限运行

操作选项卡:
程序/脚本:C: R_Program_Files R-3.2.0 bin x64 R.exe
添加参数(可选):CMD BATCH C:testHourlyR。R

问题可能是在Excel中,但你最好的办法是一步一步地调试它。首先,在任务的"Start in"选项中指定工作目录。然后运行task,进入该目录,查看task执行时是否创建了.Rout文件。它可以包含错误和消息。如果R没有产生任何错误,删除

xlApp.DisplayAlerts = False
xlApp.Visible = False
xlBook.Close
xlApp.Quit

重新运行task,查看任务管理器中是否出现新的EXCEL.exe进程。如果是,在任务设置中打开"仅当用户登录时运行"选项,这样你就可以看到Excel UI和它显示的任何消息。

相关内容

  • 没有找到相关文章

最新更新