久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

VB之操作excel后不能關閉excel進程的原因及解決方法

 hdzgx 2017-10-22

一,、問題:

使用如下代碼打開,、取值及關閉excel:


Public Function ImportFromExcel(excelFile As String) As Long

Dim xlApp As Excel.Application

Dim xlBook As Excel.Workbook

Dim xlSheet As Excel.Worksheet


Dim strCardNo As String

Set xlApp = New Excel.Application '連接EXCEL程序,或是用Set xlApp = CreateObject("Excel.Application")

xlApp.DisplayAlerts = False

Set xlBook = xlApp.Workbooks.Open(excelFile) '打開EXCEL文件

Set xlSheet = xlBook.Sheets(1)          '打開第一頁(sheet)

strCardNo = Trim(xlSheet.Cells(2, 3))  '示例,,取第2行的第3列,,即C2單元格的值

'進行其他的處理

'......

'處理完成

 


Set xlSheet = Nothing '釋放sheet對象

xlBook.Close '關閉文件

Set xlBook = Nothing

xlApp.Quit '關閉Excel

Set xlApp = Nothing

 

代碼執(zhí)行完成以后,會發(fā)現(xiàn)在任務管理器中,,excel進程仍然存在,,而且通過這個方法打開的excel文件,無法再在windows的文件夾里通過雙擊打開了,。

二,、調試分析

將中間取值及處理的所有代碼屏蔽,只執(zhí)行打開及關閉部分的代碼,,會發(fā)現(xiàn)代碼執(zhí)行完成以后,,excel成功地關閉了,因此,,問題應該出在對excel文件的處理中,。按照面向對象的思路,使用 strCardNo = xlSheet.Cells(2, 3) 取值時,,理論上應該是得到了一個單元格的實例,,而不單單是這個單元格的值,,只是vb在使用strCardNo時,只使用了它的值而已,,因此,,懷疑是因為strCardNo(或是其對應的單元格實例)在使用完成后,沒有得到釋放,,因此,,windows沒有正常關閉excel文件并銷毀excel進程。

三,、解決

但通過在Cells(2, 3)后面使用“.”提示符,,沒有發(fā)現(xiàn)有屬性可以只取得單元格的值。但Excel.Worksheet有另外一個成員Range,,它有一個value屬性,,猜測應該是取值用的,因此將代碼修改如下:

 


Set xlApp = New Excel.Application '連接EXCEL程序,,或是用Set xlApp = CreateObject("Excel.Application")

xlApp.DisplayAlerts = False

Set xlBook = xlApp.Workbooks.Open(excelFile) '打開EXCEL文件

Set xlSheet = xlBook.Sheets(1)          '打開第一頁(sheet)

strCardNo = Trim(xlSheet.Range("C2").value)  '區(qū)域C2的值

'進行其他的處理

'......

'處理完成

 


Set xlSheet = Nothing '釋放sheet對象

xlBook.Close '關閉文件

Set xlBook = Nothing

xlApp.Quit '關閉Excel

Set xlApp = Nothing

 

其中,,打開及處理、關閉的代碼沒有作任何更改,,只是將

strCardNo = Trim(xlSheet.Cells(2, 3))

改為了

strCardNo = Trim(xlSheet.Range("C2").value)

 

代碼執(zhí)行完成以后,,excel被正常關閉,excel文件也可以通過雙擊正常打開,。

四,、總結

問題出現(xiàn)后,也從網上查過解決方法,,遇到這種問題的程序員很多,。excel的打開及關閉部分,各人使用的方法都不太一樣,,但好像問題并不是出在這里,,從個人的經歷來看,實際大部分可能應該是在對excel的操縱部分出現(xiàn)的問題,。

 

 

原址:http://blog.163.com/shuangfeng_521/blog/static/20017737201422972612657/

 

    本站是提供個人知識管理的網絡存儲空間,,所有內容均由用戶發(fā)布,不代表本站觀點,。請注意甄別內容中的聯(lián)系方式,、誘導購買等信息,謹防詐騙,。如發(fā)現(xiàn)有害或侵權內容,,請點擊一鍵舉報。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多