打开excel文件工作正常,但如果我通过Windows任务计划程序安排脚本,它就无法正常工作

时间:2016-07-09 13:48:33

标签: excel vbscript scheduled-tasks

我遇到了VBScript的问题。

我直接运行下面的代码工作正常(通过双击它,它触发wscript)。我在FilePath中有一些1000个.xls文件。

FilePath = "c:\test"

Set SourceFolder = objFSO.GetFolder(FilePath+"\")

For Each file In SourceFolder.Files
    If Right(LCase(file.Name), 4)=".xls" Then
        OutFile = OutFilePath + "\" + Left(file.Name, Len(file.Name)-4) + ".csv"
        Set ExcelObject = oExcel.Workbooks.Open(file.Path)
        If Err.Number <> 0 Then objLogFile.WriteLine "Exception occured(1): " + Err.Decscription

        RowCount = oExcel.ActiveWorkbook.Sheets(1).UsedRange.Rows.Count
        ColumnCount = oExcel.ActiveWorkbook.Sheets(1).UsedRange.Columns.Count

        For i=1 To RowCount
            For j=1 To ColumnCount
                inText = ExcelObject.Sheets(1).Cells(i,j).Value
                inText = Replace(inText, vbCr, " ")
                inText = Replace(inText, vbLf, " ")
                inText = Replace(inText, ",", " ")
                ExcelObject.Sheets(1).Cells(i,j).Value = inText
            Next
        Next
        ExcelObject.SaveAs OutFile, 6
        ExcelObject.Close False
    End If
Next

如果我在Windows任务计划程序中安排相同的脚本,它也不会抛出任何错误,它只是正在运行(我可以看到wscript在任务管理器中运行。)

我试图捕捉它投掷的错误,但我无法捕获。 在每行旁边写了一些日志后,我知道它在下面的行中给出了错误。

Set ExcelObject = oExcel.Workbooks.Open(file.path)

我尝试通过将语句On Error Resume Next置于If条件下来(处理所有ObjLogFile对象相关代码)来捕获错误

If Err.Number <> 0 Then objLogFile.WriteLine "Exception occured(1): " + Err.Decscription

仍然没有捕获错误。

请帮助我,如何使用以下行继续处理错误。虽然我直接跑步时工作正常,但是在我安排的时候它不起作用。

Set ExcelObject = oExcel.Workbooks.Open(file.path)

1 个答案:

答案 0 :(得分:1)

由于我使用的是交互式Excel对象,因此我无法在调度程序“运行用户是否登录”中提供选项

我将此选项更改为“仅在用户登录时运行”

现在正在工作。谢谢大家的建议。