如何纠正无法正常关闭的工作簿

时间:2019-05-16 19:19:57

标签: excel vba

我目前正在编写一个宏,该宏将允许您选择一个文件夹,设置边界,然后遍历一些数字以读取所有特定文件类型。 (在这种情况下为Excel。)

您可以在这里看到它

Dim StringP1 As String
Dim iterator As Integer
Dim StringP2 As String
Dim i As Integer
Dim final As Integer

'number of files
final = 5


'main folder
StringP1 = " FOLDER NAME "
StringP2 = ".xls"
i = 1

While i < final

    iterator = 1
    FileName = StringP1 & iterator & StringP2

    Call attempt1(FileName)
    Call attempt2(FileName)

    i = (i + 1)
    iterator = (iterator + 1)
Wend

当它加载到我的潜艇中时,它会使用以下代码

Sub attempt1(FN As String)

Dim Excel As New Excel.Application
Dim FileName As String

Set XL = CreateObject("Excel.Application")
Set MyRec = CurrentDb.OpenRecordset("Infor")

Excel.Workbooks.Open (FN)

然后它经过一些代码,并最终退出该子例程。 我尝试过的一切似乎都失败了。

使用我从Stackoverflow和其他VBA站点中发现的各种信息,我已经花了几个小时弄弄了这个问题,但是似乎没有任何效果。

我尝试使用

excel.workbooks.close savechanges:=false
workbook.close
workbooks.close
.
.
.

我很好奇是否有人知道退出所有这些打开的EXCEL.EXE的好方法吗?

1 个答案:

答案 0 :(得分:0)

如果我正确理解您正在尝试关闭所有工作簿(Excel文件)。 按名称关闭单个工作簿的正确方法:

    XL.Workbooks("filename.xls").Close Savechanges:=False

如果要关闭许多工作簿,则可以使用以下循环:

Public Sub WorkWithExcel()
    Dim XL As New Excel.Application, WB As Excel.Workbook
    ' Open Excel file:
    XL.Workbooks.Open ("my_file.xls")
    ' Open another Excel file
    XL.Workbooks.Open ("another my file.xls")
    ' do some work with this files
    ' ...
    ' For every file in our application:
    For Each WB In XL.Workbooks
        ' Close file without saving changes:
        WB.Close savechanges:=False
    Next WB
    ' Close Excel applicatioin:
    XL.Quit
    ' Clear object:
    Set XL = Nothing
End Sub