Excel ADODB批处理问题

我已经在excel中编写了下面的VBA / ADODB代码,当直接运行时工作正常,但是通过批处理VBS脚本运行时,SQL语句没有执行。 任何想法是什么原因? (Windows 7 / Excel 2012)

如果您对代码有任何其他意见,请告诉我。 谢谢。

Sub RunSQL() Dim conn As Object, rst As Object, rst2 As Object Dim strConnection As String, strSQL As String, strSQL2 As String Dim i As Integer 'start error handler On Error GoTo ErrorHandler: Set conn = CreateObject("ADODB.Connection") Set rst = CreateObject("ADODB.Recordset") 'connection string EXTERNAL source strConnection = "DRIVER={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)};" _ & "DBQ=C:\Users\Mike\Documents\SourceBook1.xlsx;" 'SQL statement strSQL = "SELECT col2 FROM [Sheet1$];" 'open connection conn.Open strConnection 'run SQL rst.Open strSQL, conn 'write column headings For i = 1 To rst.Fields.Count Worksheets("Sheet1").Cells(1, i) = rst.Fields(i - 1).Name Next i 'write data rows Worksheets("Sheet1").Range("A2").CopyFromRecordset rst 'close workbook and save ActiveWorkbook.Close True 'clean up rst.Close: conn.Close Set rst = Nothing: Set conn = Nothing Exit Sub ErrorHandler: ErrorStr = "Error: " & Str(Err.Number) & ", Source: " & Err.Source & ", Description: " & Err.Description 'continue if error in clean up On Error Resume Next 'clean up rst.Close: conn.Close Set rst = Nothing: Set conn = Nothing 'handle error MsgBox (ErrorStr) End Sub 

这是批量工作

 Option Explicit On Error Resume Next ExcelMacroExample Sub ExcelMacroExample() Dim xlApp Dim xlBook Set xlApp = CreateObject("Excel.Application") Set xlBook = xlApp.Workbooks.Open ("C:\Users\Mike\Documents\TargetBook1.xlsm", 0, True) xlApp.Run "RunSQL" xlApp.ActiveWorkbook.Close xlApp.Quit Set xlBook = Nothing Set xlApp = Nothing End Sub