VBA - 关闭非excel文件

时间:2016-11-25 19:10:04

标签: excel-vba macros vba excel

我有一个问题我无法找到答案。我有一个宏,它将.MHTML文件中的数据导入到我的工作表中(不幸的是,使用.MHTML文件是我唯一的选项。它是从SAP导出并在Excel中打开但由于文件扩展名类型而无法识别为Excel文件)。在宏的最后,我想要关闭它。它不被识别为excel工作簿,因此我无法使用简单的:Workbooks().close命令。

有没有人对如何做到这一点有任何想法?提前谢谢。

2 个答案:

答案 0 :(得分:1)

我能够找到此代码,在更改标题以匹配任务管理器中显示的内容后,它可以工作:http://www.vbforums.com/showthread.php?208430-Use-sendmessage-to-close-an-application

Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Private Const WM_CLOSE = &H10

Sub ExportClose()
Dim CloseIt As Long
CloseIt = FindWindow(vbNullString, "Microsoft Excel - SAP_export.MHTML")
PostMessage CloseIt, WM_CLOSE, CLng(0), CLng(0)
End Sub

注意:这对我的系统很有用,但不适合我的同事 ..目前正试图找出原因

答案 1 :(得分:0)

也许只是尝试:

Windows("SAP_export.MHTML").Close