Dim xlApp As Excel.Application
声明之后是调用:
Set xlApp = CreateObject("Excel.Application")
最后是关闭
xlApp.Quit
你就是少了最后的关闭,每次调用关闭后都要运行上面那句的!!
声明之后是调用:
Set xlApp = CreateObject("Excel.Application")
最后是关闭
xlApp.Quit
你就是少了最后的关闭,每次调用关闭后都要运行上面那句的!!
解决方案 »
- 用VB怎么计算远程服务器上的延迟
- VB DataReport 的问题
- CONTINUE
- 哪位有纬衡图档VHDrawings 4.0及使用说明,试用版就可以
- VB中的URL是什么?可否详细说明。该怎么用
- 求救啊!有关于用WAV,MP3文件格式的问题!
- Run Timer Error 424 Object Required.
- 如何限制表中记录的数目?
- 有关数据库实现网络的问题?急
- 谁愿意帮我测试一个进销存(是半成品,还在写)送源码,要求是能给我提出程序不足之处,愿我们共同进步
- 帮帮我。。一位初学VB的新手,第一次来就有个问题请大家回答。。嘿嘿~~~~~
- 我在单位里写的程序,今天拿到家里来后就用不了了,说:时实错误,类型不匹配
声明之后是调用:
Set xlApp = CreateObject("Excel.Application")
最后是关闭
xlApp.Quit
set xlApp=nothing
先声明一个Excel对象
Dim Xlapp as Excel.Application
调用
Set Xlapp=CreateObject("Excel.Application")
操作Excel
例如
Xlapp.Sheet("Sheet1".Cell(1.1)="abcd"
最后要记得关闭Excel对象
xlApp.Quit
Set Xlapp=Nothing
問題沒有那麼簡單.關閉必須是手工操作.相關代碼如下:
Dim Exapp As Excel.Application, Exwb As Excel.WorkbookSet Exapp = CreateObject("Excel.Application")
Set Exwb = Exapp.Workbooks.Open(App.Path & "\Report\001.xls")
With Exapp
.ActiveSheet.PageSetup.LeftMargin = Application.InchesToPoints(0.7)
.ActiveSheet.PageSetup.RightMargin = Application.InchesToPoints(0.7)
.ActiveSheet.PageSetup.TopMargin = Application.InchesToPoints(1.4)
.ActiveSheet.PageSetup.BottomMargin = Application.InchesToPoints(0.7)
................其它Excel填充內容代碼
End With
Exapp.Visible = True
Set Exwb = Nothing
Set Exapp = Nothing看看是什麼原因?
因为Exapp.visible=True这一句是打开Excel来显示的。
出現這種現象時,就是手工關閉時Excel沒有退出內存.
我一般要求操作者重新開機來解決.
再启动excel时可以进行判断如果按钮的enable=false则不能运行或者运行 xlApp.Quit
Set Xlapp=Nothing 就可以了!!
UPUP
UPUPUP
UPUPUP
UPUPUPUP
UPUPUPUP
UPUPUPUP
UPUPUPUP
UPUPUP UPUPUP
UPUPUPUP UPUPUP
UPUPUPUP UPUPUPUP
UPUPUPUP UPUPUPUP
UPUPUPUP UPUPUPUP
UPUPUPUP UPUPUPUP
UPUPUPUP UPUPUPUP
UPUPUP UPUPUPUPUP
UPUPUPUP UPUPUPUPUPUP
UPUPUPUP UPUPUPUPUPUP UPUPUPUPUPUPUPUPUP
UPUPUPUP UPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUP
UPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUP
UPUPUPUPUPUPUPUPUPUPUPUPUPUPUP UPUPUPUPUP UPUPUPUPUPUPUPUPUPUP
UPUPUPUPUPUP UPUPUPUPUPUPUP UPUPUPUP UPUPUPUPUPUPUPUPUP
UPUPUPUP UPUPUPUP UPUPUPUP UPUPUPUPUP
UPUPUP UPUPUP UPUPUPUP
UPUPUPUP UPUPUPUP
UPUPUP UPUPUPUP
UPUPUP UPUPUPUP
UPUPUPUP UPUPUPUP
UPUPUPUP UPUPUPUP
UPUPUPUPUP UPUPUPUP
UPUPUPUPUPUPUPUP UPUPUPUPUP
UPUPUPUPUP UPUPUPUPUPUPUPUPUP
UPUPUPUP UPUPUPUPUPUPUPUP
UPUP UPUPUPUPUPUP
UPUPUPUPUP
UPUP
都沒有回答到根源問題.不過還是謝謝各位的參與.
出現這樣情況的時候不是很多.我想跟操作系統調度不穩定有關系.(我分發前,在本機上測試個N次.只有在手工關閉後,Excel還留在內存中才會出現這種現象.其它情況下,你不管關閉不關閉此方法調用出來的Excel,你調用多次也不會出現任何問題)
不仅是VB本身的BUG还包括windows和数据库的!唉!
並且運行的過程中,在不關閉以前調用的Excel報表時允許用戶修改前台參數然後繼續調用Excel顯示其它的信息.
ex.quit
Set Exwb = Nothing
Set Exapp = Nothing
end
如果还存在问题,也不用重新开机,最多ctrl+alt+DEL结束任务就可以了。
关键原因是没有释放,而绝对不是什么window,vb的bug,应为我的程序现在再没有出过问题了。其实就是 .quit 和 set **=nothing, 只是你没考虑全部情况,在有些时候关闭了程序却没释放excel. 还有一点是,如果你只是打印而不对生成的报表做修改的话,最好不要让它visible,因为如果手动把excel关了,而你的程序再试图关闭时就也会出错。如果真的要修改,就多加一个button,要求用户要关闭时别在excel直接关闭,而用的button关闭,你在click里释放,就不会有问题了。或者干脆用on error goto errorhandle,在你的errorhandle里进行补救,当然还是把该释放的释放了。总之一句话,就是在合适的时机,set **=nothing。
否则。。