我正在Access中构建一个数据库,为此我从Excel工作簿调查表中导入数据。我编写了一个Import,用于选择、打开、检索数据并最终关闭工作簿。
问题是这样的:由于某种原因,当我现在打开计算机上的任何excel工作簿时(此时既没有Access也没有使用Excel ),一些旧版本的调查问卷也一直在打开。这个问题并不是通过重新启动计算机来结束的,而是通过删除特定的问卷--工作簿来结束的。但是,它开始在另一个工作簿上发生。
我有一个理论,这可能是因为我-在我的导入-子-打开了调查问卷,遇到了一个运行时错误,它已经结束之前,潜艇关闭工作簿,并在某种程度上,工作簿仍然“打开”。或者仍然有一个链接活动。
,所以我有两个问题:
1.)有人知道我如何解决这个问题吗?
2.)通常不会关闭您通过VBA打开的工作簿吗?
我的相关代码是:
Dim MyXL As Excel.Application
Dim MyWB As Excel.Workbook
...
在许多事情发生之间,有几次错误会中断程序。
...
MyWB.Close False
MyXL.Quit
感谢你在这方面的任何帮助!
发布于 2014-08-18 14:53:42
你的理论很有可能。如果您从未显示Excel应用程序,则会遇到错误,并且您的代码永远不会关闭工作簿--它将在后台打开,您的代码很可能会失去对它的引用。下一次打开Excel文件时,已经打开(但隐藏在视图中)的Excel实例“接收”请求并打开该文件,同时显示仍然从宏打开的文件。
1.)您应该设置错误处理,以便在出现不可恢复错误时关闭工作簿和应用程序。
Sub MySub()
On Error GoTo handle_Err
<... code ...>
Exit Sub
handle_Err:
MyWB.Close False
MyXL.Quit
End Sub
如果代码中有其他错误处理语句,请始终将其重置为On Error GoTo handle_Err
,而不是GoTo 0
等。
( 2.)不关闭工作簿的唯一后果是显而易见的后果--它正在使用的系统资源,如果它是开放的,则没有人可以编辑它。
发布于 2019-11-06 04:39:14
我确实遇到了同样的问题,并发现Excel存储当您在文件夹中启动Excel时打开的文件(XLSTART)。通往我的道路是:c:\USERS\MyUserName\AppData\Roaming\Microsoft\Excel\XLSTART
正如Ross McConeghy所建议的那样,错误处理可能会防止这种情况发生。但是错误已经发生了,正如您所建议的那样,问题单已经将工作簿放在了XLSTART文件夹中。您必须从该文件夹中删除它,以修复不必要的事件。
发布于 2021-03-10 05:28:16
我有一个类似的问题,并以不同的方式解决了它。我找到了与外部工作簿的连接,并通过转到Data > Edit链接来修复它。
https://stackoverflow.com/questions/25370854
复制