我的代码关闭了工作簿,但没有关闭 window

My code closes the workbook but not the window

我在关闭 window 时遇到问题。我正在使用 excel 2013,它会在单独的 window 中打开每个工作簿。我的代码关闭了工作簿,但没有关闭 window。有任何想法吗?我正在从另一个子呼叫这个子。

Sub export_sheet()
    Sheets(sName).Move
    ActiveWorkbook.SaveAs Filename:=sDir & sName & ".xlsx",  FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
    Workbooks(sName & ".xlsx").Close SaveChanges:=True
    Workbooks(ThisWorkbook).Activate
End Sub

我有两个 Excel 实例。一个包含我的代码 "temp 121015.xlsm",另一个只是一个带有工作簿名称的空 window,但工作簿已关闭。

Application.Quit

这将关闭整个 excel 应用程序实例。在代码中使用此行之前,您需要保存更改,以防止出现保存提示。

请试试这个:

Sub export_sheet()
    Sheets(sName).Move
    Application.DisplayAlerts = False
    ActiveWorkbook.SaveAs Filename:=sDir & sName & ".xlsx", FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
    Workbooks(sName & ".xlsx").Application.Quit
    ThisWorkbook.Activate
    Application.DisplayAlerts = True
End Sub

Excel 2013年的独立申请方法 window 每个工作簿意味着您必须使用 Application.ActiveWindow property 关闭您创建的新工作簿而不留下空应用程序帧.

Sub export_sheet()
    Sheets(sName).Move
    Application.DisplayAlerts = False
    ActiveWorkbook.SaveAs Filename:=sDir & sName & ".xlsx", FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
    ActiveWindow.Close   '<~~ this closes the new workbook created by the .Move
    ThisWorkbook.Activate
    Application.DisplayAlerts = True
End Sub

您已经在处理 ActiveWorkbook property created with the Worksheet.Move method. Continue working within this scope with ActiveWindow

终于找到问题了。这是行 Application.visible=false。如果我禁用它它工作正常但我真的想隐藏应用程序。