VB调用Excel要求对象

DimxlAppAsObjectDimxlBookAsObjectDimxlSheetAsObjectSetxlApp=CreateObject("Excel.Appli... Dim xlApp As Object
Dim xlBook As Object
Dim xlSheet As Object
Set xlApp = CreateObject("Excel.Application") '创建EXCEL对象
Set xlBook = xlApp.Workbooks.Open("F:\数据表.xls") '打开已经存在的EXCEL工件簿
xlApp.Visible = True '设置EXCEL对象可见
Set xlSheet = xlBook.Worksheets(1) '设置活动工作表

For n = 0 To 22
xlSheet.Cells(1, n + 1) = n + 1
For j = 1 To 30
xlSheet.Cells(j + 1, n + 1) = j^2
Next j
Next n
xlApp.Quit '结束EXCEL对象
Set xlApp = Nothing '释放xlApp对象
代码就是上面那部分,运行能正常打开数据表,并存入数据
有三个问题:
1、最后两行代码应该是自动关闭Excel,但运行后Excel仍然是打开的,没关掉?
2、当我手动关闭时,会弹出“要求对象”提示框,怎么回事?
3、这个问题接着第2个,如果我把j^2换为j^3,存入新的数据,关闭Excel时,不论保存还是不保存,就不会出现第2种情况?如果我保存了,又运行一次,也就是说数据表里的数据不会变化,还是原来的值,这个时候,选择保存或不保存,都会出现第2种情况?很奇怪!!
补充出问题的提示
展开
 我来答
lanniao007
2012-02-22 · TA获得超过1012个赞
知道小有建树答主
回答量:1489
采纳率:40%
帮助的人:453万
展开全部
Dim xlBook As Object
Dim xlSheet As Object
也得关闭和Nothing
关闭的顺序从小到大。
Se txlSheet= Nothing
xlBook.Close False
Set xlBook= Nothing
xlApp.Quit
Set xlApp= Nothing

在对Excel对象操作前
xlApp.Application.DisplayAlerts = False
之后关闭对象之前再度
xlApp.Application.DisplayAlerts = True
更多追问追答
追问
不行啊,不能解决问题
追答
是不是你进程里面有Exec没有关掉。你将所有Exec都关闭完。再试验。
ser_amado
2012-02-23
知道答主
回答量:4
采纳率:0%
帮助的人:5615
展开全部
这样写
app.Quit();
System.Runtime.InteropServices.Marshal.ReleaseComObject(app);
app = null;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
passer_by_丙
2012-02-23
知道答主
回答量:8
采纳率:0%
帮助的人:3.9万
展开全部
xlApp.save
xlApp.Quit '结束EXCEL对象
可以考虑直接用VBA 会更容易找到错误
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式