我的代码closures工作簿,但不是窗口
我有closures窗口的问题。 我正在使用Excel 2013,并在单独的窗口中打开每个工作簿。 我的代码closures工作簿,但不是窗口。 有任何想法吗? 我从另一个子部分调用这个子部分。
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”,另一个只是一个带有工作簿名称的空窗口,但工作簿已closures。
对于每个工作簿,Excel 2013的独立应用程序窗口的方法意味着您必须使用Application.ActiveWindow属性来closures您创build的新工作簿,而不会留下空的应用程序框架。
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
您已经在处理使用Worksheet.Move方法创build的ActiveWorkbook属性 。 使用ActiveWindow继续在这个范围内工作。
Application.Quit
这将closures整个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
最后我发现了这个问题。 这是行Application.visible=false
。 如果我禁用这个工作正常,但我真的想隐藏应用程序。
- C#System.Runtime.InteropServices.COMException(0x800A03EC):从HRESULTexception:0x800A03EC Microsoft.Office.Interop.Excel._Workbook.SaveAs()
- 将Excel文件加载到Powerbuilder
- Java代码运行在Windows上,但不是在Linux上
- 在文件夹中查找文件名并匹配Excel表格
- 不能用C#打开excel文件
- 使用Windows系统上的默认应用程序打开Excel文件
- .net读取excel文件时出现oledb错误
- 使用系统function打开Excel表格
- Excel Sumifs在另一台计算机上是casesensitiv