'但是我还是不太明白。
'我举个例子:
private function myfun(...)
...'其中调用了很多excel文件,如下
Dim xexl As Object
Set xexl = CreateObject("Excel.Application")
xexl.Workbooks.Open ("test1.xls")
...'对test1.xls有很多操作,test1.xls有很多数据
xexl.Workbooks("test1.xls").Close (True)
end function
''
Private Sub Command1_Click()
call myfun(...)'调用myfun过程之行时间太长,而且程序“死”这里,要很长时间
MsgBox ("Hello!")
End Sub
Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
Private Const STANDARD_RIGHTS_REQUIRED As Long = &HF0000
Private Const SYNCHRONIZE As Long = &H100000
Private Const PROCESS_ALL_ACCESS As Long = (STANDARD_RIGHTS_REQUIRED Or SYNCHRONIZE Or &HFFF)
Private Sub Command1_Click()
Dim pId As Long
Dim pHnd As Long
pId = Shell("C:\Program Files\Microsoft Office\Office\Excel.exe", vbNormalNoFocus)
pHnd = OpenProcess(PROCESS_ALL_ACCESS, 0, pId)
MsgBox ("Hello!")
Call CloseHandle(pHnd)
End Sub