为什么当我尝试在VBscript中创build一个Excel工作表时打开两个Excel工作表?

我已经用VBscript编写了一个程序来创build一个Excel工作表。 该程序工作正常,当我点击Excel表打开它,我创build的工作表以及一个新的Excel“Book1”打开。 为什么发生这种情况? 我怎样才能阻止它,只有我创build的工作表将打开? 代码如下:

Set objExcel = CreateObject("Excel.Application") 'Bind to the Excel object objExcel.Workbooks.Add 'Create a new workbook. Sheet = 1 'Select the first sheet Set objSheet = objExcel.ActiveWorkbook.Worksheets(Sheet) 'Bind to worksheet. objSheet.Name = "InfoBook" 'Name the worksheet strExcelPath = "c:\scripts\InfoBook.xlsx" 'Set the save location objSheet.Range("A1:C1").Font.Bold = True objExcel.Columns(3).AutoFit() objSheet.Cells(1, 1).Value = "Date" 'Row 1 Column 1 (A) objSheet.Cells(1, 2).Value = "Time" 'Row 1 Column 2 (B) objSheet.Cells(1, 3).Value = "Category" 'Row 1 Column 3 (C) objExcel.ActiveWorkbook.SaveAs strExcelPath objExcel.ActiveWorkbook.Close objExcel.Application.Quit 

你有没有尝试重新启动计算机,并再次运行代码?

额外的工作簿可能会从早期失败的尝试运行代码中遗留下来。 尽pipe我不能使用发布的代码复制错误,但我可以通过执行来复制它

 Set objExcel = CreateObject("Excel.Application") 'Bind to the Excel object objExcel.Workbooks.Add 'Create a new workbook. 

然后运行你的脚本。

因为第一个脚本创build工作簿但不closuresExcel应用程序 ,所以当您打开由脚本创build的工作簿时,将打开仍在运行的Excel实例(仍包含Book1),同时打开工作簿。

重新启动电脑将摆脱Excel的运行实例 – 或者您可以使用任务pipe理器终止它。

我想清楚是什么问题。 该线

 objSheet.Name = "InfoBook" 

用这个名字创build一个工作簿。 然后,当我们指定工作簿的path时,我们再次在下面一行中创build该名称的工作簿

 strExcelPath = "c:\scripts\InfoBook.xlsx" 

所以诀窍是只命名path中的Excel工作簿,所以只能打开一次,并保存在我们想要的地方。

感谢所有花时间在我这个小困境中的人。 希望它也帮助你们。