Microsoft VBScript运行时错误

时间:2016-10-24 12:40:35

标签: vbscript

我已经在VBScript中编写了代码。我在下面显示的代码的特定部分出现错误。

  

[ActiveX脚本任务]错误:用户脚本引发异常:错误代码:0
  错误源= Microsoft VBScript运行时错误
  错误描述:所需对象:'REGroupSBUOps'

     

第85行出错

'Declaring and connection string statements
strREGroupSBUOps ="sp_CPVarianceOpsReport6"
Set REGroupSBUOps = oDBCon.Execute(strREGroupSBUOps) 

Dim arr()
ReDim arr(6)

Dim i    
arr(0) = "REGroupSBUOps"
arr(1) = "DandBSBUOps"
arr(2) = "Tristate/Central/EastSBUOps"
arr(3) = "WestSBUOps"
arr(4) = "EastSBUOps"
arr(5) = "UKSBUOps"
If Not (arr(i).EOF) Then   ' <--error on this line
    'followed by other statements

1 个答案:

答案 0 :(得分:0)

将代码放入For循环中,并将其与实际执行的存储过程一起放入子中。将存储过程调用和数组中的名称作为参数传递给sub。将所有出现的arr(i)替换为获取存储过程调用返回的记录的变量的名称(在下面的示例中为rs)。

Sub ExportData(sp, name)
    Set rs = oDBCon.Execute(sp) 

    If Not rs.EOF Then
        sFileName1 = "\\CTSC00579895801\ime\MailReports\" & name & ".xls"
        Set oFSOExcelFile = CreateObject("Scripting.FileSystemObject")
        Set objExcel = CreateObject("Excel.Application")
        objExcel.Visible = True
        ...
        objExcel.Quit
        Set objExcel = Nothing
    End If
End Sub

ExportData "sp_CPVarianceOpsReport 1" "Tristate_Central_EastSBUOps"
ExportData "sp_CPVarianceOpsReport 2" "UKSBUOps"
...

作为进一步的优化,您可能希望将Excel和FileSystemObject对象创建为全局单例,只需处理子文件中的文件,而不是反复创建和销毁这些实例。