【问题标题】:Close Excel file when error message pops up弹出错误消息时关闭 Excel 文件
【发布时间】:2021-06-25 22:17:35
【问题描述】:

所以这个脚本的作用是检查文件 A 是否打开,如果文件 A 没有打开它应该显示错误消息,如果显示错误消息我想关闭 Excel 文件。

出于某种原因,我无法理解它。我尝试了Application.Quit,但这只是关闭了 Excel 中的所有内容,我尝试只为文件 A 执行特定窗口 Excel 窗口,但这似乎是一个复杂的问题。

我还尝试了Application.ActiveWindow.CloseSaveChanges:=False ActiveWorkbook.Close SaveChanges:=False 效果最好。

我的问题是弹出错误信息后如何关闭Excel?

Sub PullData()

Dim WB As Workbook
On Error Resume Next
    Set WB = Workbooks("A.xlsx")
    If Err Then MsgBox "Text - Text.xlsx Text." & vbNewLine & "" & vbNewLine & "" & "Text Text.xlsx Text" & vbNewLine & "" & vbNewLine & "Text" & vbNewLine & "" & vbNewLine & "Text.xlsx Text"

Workbooks("A.xlsx").Worksheets("A").Range("A2:AD9999").Copy _
Workbooks("B.xlsm").Worksheets("B").Range("A2")
Worksheets("Text").Range("A1").AutoFilter Field:=1, Criteria1:="YES"
On Error GoTo 0

End Sub

【问题讨论】:

  • 如果要关闭工作簿,代码正在使用 ThisWorkbook.Close。
  • 我试过了,但是如果我打开文件 A,然后打开文件 B,其中包含脚本文件 B 似乎甚至没有打开并立即关闭。 (Excel 打开时宏会自动运行)
  • 查看此链接。您需要先测试工作簿是否打开...extendoffice.com/documents/excel/…
  • 工作簿打开,我已将ThisWorkbook.Close 放在If Err Then MsgBox "Text - Text.xlsx Text." 下,我怀疑这是问题所在?谁能告诉我如何在这段代码中使用ThisWorkbook.Close

标签: excel vba


【解决方案1】:

如果您想在工作簿“A.xlsx”未打开时关闭代码所在的工作簿,您可以使用它。

 If Err Then 
     MsgBox "A.xlsx not open!"
     ThisWorkbook.Close
 End If

【讨论】:

  • 非常感谢!不敢相信这么简单,我想我需要让我的眼睛休息一下。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-02
  • 2014-09-08
  • 1970-01-01
相关资源
最近更新 更多