ObjWorkbook.Worksheets.Count不工作

我正在尝试编写一个代码来打开一个Excel文件,然后search它。 即使如此,我只是检索工作簿中的工作表数量的问题。 我得到的错误:

424 – VBScript运行时错误,对象必需

有什么想法吗? 这是我遇到的问题的一小部分代码:

Dim Shell : Set Shell = WScript.CreateObject( "WScript.Shell" ) Dim oFSO : Set oFSO = CreateObject("Scripting.FileSystemObject") Dim objExcel : Set objExcel = CreateObject("Excel.Application") Dim myworkbook, worksheetcount Set myworkbook = objExcel.Workbooks.Open("C:\Temp\Test.xlsx") On Error Resume Next Set worksheetcount = myworkbook.worksheets.count 'fails If Err.number <> 0 Then ShowError() myworkbook.Close False End if Sub ShowError() WScript.Echo Err.Number & " Srce: " & Err.Source & " Desc: " & Err.Description Err.Clear End Sub 

以下将做这项工作。

VBA版本

 Dim Shell As Object: Set Shell = CreateObject("WScript.Shell") Dim oFSO As Object: Set oFSO = CreateObject("Scripting.FileSystemObject") Dim objExcel As Application: Set objExcel = CreateObject("Excel.Application") Dim myworkbook As Workbook, worksheetcount As Long Set myworkbook = objExcel.Workbooks.Open("C:\Temp\Test.xlsx") On Error Resume Next worksheetcount = myworkbook.Worksheets.Count If Err.Number <> 0 Then ShowError myworkbook.Close False End If 

VBScript版本

 Dim Shell: Set Shell = WScript.CreateObject("WScript.Shell") Dim oFSO: Set oFSO = CreateObject("Scripting.FileSystemObject") Dim objExcel: Set objExcel = CreateObject("Excel.Application") Dim myworkbook, worksheetcount Set myworkbook = objExcel.Workbooks.Open("C:\Temp\Test.xlsx") On Error Resume Next worksheetcount = myworkbook.Worksheets.Count If Err.Number <> 0 Then ShowError myworkbook.Close False End If 

您有错误,因为您尝试SetSet为不是对象的worksheetcount 。 您只使用Set对象。