如何解决如何用VBA代码关闭Excel电子表格?
我下面有下面的例程,该例程用于打开Excel电子表格,然后逐行将结果导入传入的表中。它可以正常工作,但问题是如果我尝试打开同一电子表格第二次,我收到一条消息,指出该文件正在使用中,必须再次按Ctrl-Alt-Del关闭Excel,然后才能再次使用它。我认为Set mySheet = nothing和Set xlApp = nothing会释放文件,但显然不会。我还能做些什么来确保Access放开Excel文件?预先感谢!
Public Sub MakeTempTable(strFilePath As String,tablename As String)
Dim mySheet As Object
Dim xlApp As Object
Dim rs As DAO.Recordset
Dim sql As String
sql = "DELETE * FROM " & tablename
DoCmd.Runsql sql
Set rs = CurrentDb.OpenRecordset(tablename)
Set xlApp = CreateObject("Excel.Application")
Set mySheet = xlApp.Workbooks.Open(strFilePath).Sheets(1)
xlApp.Visible = False
Set mySheet = xlApp.Sheets("Input")
Dim dRows As Double
dRows = 1
Dim dRow As Double,dCol As Double
dRow = 2
On Error GoTo ERR
Do
dCol = 1
rs.AddNew
If mySheet.cells(dRow,3) = "" Then Exit Do
Do
If mySheet.cells(dRow,dCol).Value <> "_END_" Then
rs.Fields(dCol).Value = Nz(mySheet.cells(dRow,dCol).Value,"")
dCol = dCol + 1
Else
Exit Do
End If
Loop
rs.Update
dRow = dRow + 1
Loop
EXITSUB:
Set mySheet = nothing
Set xlApp = nothing
Exit Sub
ERR:
If ERR.Number = 3265 Then MsgBox "The species selected are incompatible. Canceling import.",vbCritical,"IMPORT ERROR"
GoTo EXITSUB
End Sub
解决方法
尝试使用
xlApp.Quit
将xlApp设置为空时,仅清除过程中的对象,而不对实际的Excel实例执行任何操作。设置XXX =什么都不允许您做的就是重用该对象。
,您将需要合法关闭在中打开的工作簿
xlApp.Workbooks.Close EXITSUB:
这将关闭打开的实例。
在此之前,请杀死所有实例或重新启动计算机以清除所有打开的实例。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。