我有一个VBS脚本,它接受一个Excel文件并将其保存为PDF。我将此vbs称为通过任务计划程序自动执行的RScript。当我在R中手动运行它时,RScript运行得很好。但是,当我在任务计划程序中安排它时,任务表明它已成功完成,但PDF文件未保存。与运行RScript的任务计划程序有什么不同,导致它实际上没有完成?
这是RScript,我在同一个C:\ test文件夹中保存为HourlyR.R。
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
以下是我如何设置我的预定任务:
常规标签:
运行用户是否已登录或未选中
选中最高权限运行
动作标签:
程序/脚本:C:\ R_Program_Files \ R-3.2.0 \ bin \ x64 \ R.exe
添加参数(可选):CMD BATCH C:\ test \ HourlyR.R
答案 0 :(得分:0)
问题可能出在Excel中,但最好的办法是逐步调试。首先,在任务中指定工作目录"开始"选项。然后运行任务,导航到该目录并检查执行任务时是否创建了.Rout
文件。它可以包含错误和消息。如果R没有产生任何错误,请删除
xlApp.DisplayAlerts = False
xlApp.Visible = False
xlBook.Close
xlApp.Quit
再次运行任务,并检查任务管理器中是否显示新的EXCEL.exe进程。如果是这样,请打开"仅在用户登录时运行"任务设置中的选项,您应该看到Excel UI及其显示的任何消息。