当前位置:编程学习 > VB >>

求助

我在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 VB --------------------编程问答-------------------- 本身是一个,你有新建了一个,不是两个吗? --------------------编程问答-------------------- 混乱的对象关系!

工程引用了 Excel ,如果第一次调用该库中的全局对象(必须 ActiveSheet、ActiveWorkbook 等),则会自动将默认实例对应到第一个 Excel 实例中。
而你无论 Excel 是否有实例存在,都新建了一个实例 xlApp。
所以:
A)如果原先没有 Excel 实例,那么默认实例就是 xlApp,ActiveSheet 和 ActiveWorkbook 操作的就是新建的工作簿,即只有1个工作簿。
B)如果原先存在 Excel 实例,那么默认实例就不是 xlApp,ActiveSheet 和 ActiveWorkbook 操作的就是原 Excel 中的工作簿,即至少有2个工作簿。
--------------------编程问答-------------------- 非常感谢,不过如果原来有的实例应该怎么删除啊 --------------------编程问答-------------------- 和实例无关。
你不能操作 ActiveSheet、ActiveWorkbook,这有不确定性。
通过 xlApp 下属对象来操作就可以了。 --------------------编程问答-------------------- Dim xlSheet As New Excel.Worksheet
这句的NEW去了
补充:VB ,  VBA
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,