我在VB中使用以下代码创建并保存工作簿,但是保存的时候为什么有两个工作簿啊?
Dim xlApp As Excel.Application
Dim xlBook As Excel.Workbook
Dim xlChar As New Excel.Chart
Dim xlSheet As New Excel.Worksheet'Set xlApp = New Excel.Application
Set xlApp = CreateObject("Excel.Application")
xlApp.Visible = True '非常关键,Visible表明了excel可见且读写
xlApp.Workbooks.Add
xlApp.Worksheets.Add Before:=Sheets(3)
ActiveSheet.Name = "ca"
ActiveWorkbook.SaveAs "D:\ccc.Xlsx"xlApp.Quit
Set xlApp = Nothing
End
End Sub

解决方案 »

  1.   

    混乱的对象关系!工程引用了 Excel ,如果第一次调用该库中的全局对象(必须 ActiveSheet、ActiveWorkbook 等),则会自动将默认实例对应到第一个 Excel 实例中。
    而你无论 Excel 是否有实例存在,都新建了一个实例 xlApp。
    所以:
    A)如果原先没有 Excel 实例,那么默认实例就是 xlApp,ActiveSheet 和 ActiveWorkbook 操作的就是新建的工作簿,即只有1个工作簿。
    B)如果原先存在 Excel 实例,那么默认实例就不是 xlApp,ActiveSheet 和 ActiveWorkbook 操作的就是原 Excel 中的工作簿,即至少有2个工作簿。
      

  2.   

    和实例无关。
    你不能操作 ActiveSheet、ActiveWorkbook,这有不确定性。
    通过 xlApp 下属对象来操作就可以了。
      

  3.   

    Dim xlSheet As New Excel.Worksheet
    这句的NEW去了