excel vba项目不closures

我正在通过VBA中的100多个excel文件,提取某些数据并将其复制到主工作簿中的主电子表格中。 我有一个VBA脚本驻留在这个主电子表格。

我打算让每个源工作簿closures后,我打开它,并得到我所需要的。 它看起来像这样:

dim main_wb dim source_wb set main_wb = activeworkbook Loop thru workbook names set source_wb = workbooks.open(a_workbook_name) do some stuff eventually copy a few rows from various sheets into the main wb source_wb.close() set source_wb = Nothing End Loop 

问题是,SEEMS就像系统继续在项目资源pipe理器中保持文件打开一样…并最终耗尽内存或其他东西。 所有文件单独工作正常。 只有当我试图一次处理所有这些问题。 工作簿“closures()”,但项目仍然存在于开发人员窗口的项目资源pipe理器中。

我如何告诉它closures一个项目。 我需要能够,没有BS,closures项目,并继续下一个数百和潜在的数以千计的文件 – 自动,在代码中,没有来自用户的干预。

试试…它适用于类似types的程序。

 'closes data workbook source_wb.Close False 

似乎VBE编辑器并不总是可见的正在closures的工作簿。

我将下面的代码包含在我的ThisWorkbook模块中,该模块来自另一个线程的注释,并解决了这个问题。

http://dailydoseofexcel.com/archives/2004/12/11/google-desktop/

 Private Sub Workbook_BeforeClose(Cancel As Boolean) On Error Resume Next ' ------------------------------------------------------------- ' this code ensures that the VBA project is completely removed ' when the workbook is closed ' http://dailydoseofexcel.com/archives/2004/12/11/google-desktop/ ' ------------------------------------------------------------- If Not (Application.VBE.MainWindow.Visible) Then Application.VBE.MainWindow.Visible = True Application.VBE.MainWindow.Visible = False End If End Sub 

我最近有这个问题:我有一个工作簿,从我用作数据库的其他工作簿抓取数据。 其中之一,我无意中放置了一些代码。 这导致工作簿在VBE中保持可见状态,即使在closures之后也是如此。 我的解决scheme是让我的数据库工作簿免费的代码,并解决了这个问题。

解决scheme:pipe理您的保存(是,否,取消)在您的应用程序中销毁加载项链接closures这些加载closures您的应用程序