VB 连接EXCEL后的进程问题 追30等答案

来源:百度知道 编辑:UC知道 时间:2024/06/09 14:46:01
Public VBExcel As Excel.Application
Public xlbook As Excel.Workbook
Public xlsheet As Excel.Worksheet
.............
Set VBExcel = Nothing
Set VBExcel = CreateObject("Excel.Application")
Set xlbook = VBExcel.Workbooks.Open(App.Path & "\" & "temp" & "\" & "abc" & ".xls", Password:="123", writerespassword:="123")
Set xlsheet = xlbook.Worksheets(1)
......
......
VBExcel.Quit
Set VBExcel = Nothing
如上: 连接EXCEL后 做了一写动作 然后 关闭连接

软件中有好几个动作涉及到 上面的连接

软件程序正常,但是,进程中的EXCEL会越来越多。。。

直接整个软件全部退出为止 我想每次连接动作完成后就关掉

大家有没有办法 老规矩 追30等答案

xlbook.close
xlbook.Quit
set xlbook=nothing

xlsheet.close
xlsheet.Quit
set xlsheet=nothing

每次用完后,试一下上面的结束语句,我没用过,但根据你说的意思,感觉应该是没有结束原来的引用造成的。

’WINDOWS API 函数
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
' WINDOWS API 函数
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
'常数
Private Const WM_CLOSE As Long = &H10

'自定义方法
public sub funFinishExcel()
Dim hwnd As Long
Dim ret As Long

hwnd = FindWindow("XLMAIN", vbNullString)
If hwnd <> 0 Then
ret = SendMessage(hwnd, WM_CLOSE, &O0, &O0)
End if

end sub