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种情况?很奇怪!!
补充出问题的提示 展开
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种情况?很奇怪!!
补充出问题的提示 展开
3个回答
展开全部
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
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都关闭完。再试验。
展开全部
这样写
app.Quit();
System.Runtime.InteropServices.Marshal.ReleaseComObject(app);
app = null;
app.Quit();
System.Runtime.InteropServices.Marshal.ReleaseComObject(app);
app = null;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
xlApp.save
xlApp.Quit '结束EXCEL对象
可以考虑直接用VBA 会更容易找到错误
xlApp.Quit '结束EXCEL对象
可以考虑直接用VBA 会更容易找到错误
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |