关闭工作簿并在另一个工作簿中完成VBA过程

时间:2018-07-16 10:43:16

标签: excel excel-vba

我使用以下VBA创建所使用的电子表格的副本:

.top > li {
  text-decoration: underline;
}

.top ol li {
  text-decoration: none;
}

此代码将Excel文件的副本放在桌面上。完成此操作后,将打开新创建的Excel文件,并关闭另一个文件。
但是,另一个关闭会导致VBA也停止;因此,!important不再出现。

如何更改VBA,使其在新打开的电子表格中继续显示并显示消息框?

1 个答案:

答案 0 :(得分:0)

ThisWorkbook.Close SaveChanges = False关闭工作簿。 VBA代码在内部,因此MsgBox不出现。

最简单的解决方案是像这样更改您的代码:

MsgBox ("File saved successfully on desktop.")
ThisWorkbook.Close SaveChanges = False

要确保您的MsgBox不会“撒谎”,请引入错误捕获:

Sub Files()

    On Error GoTo Files_Error

    ActiveWorkbook.SaveCopyAs "C:\Users\" & Environ("Username") & "\Desktop\testfile.xlsm"
    Workbooks.Open "C:\Users\" & Environ("Username") & "\Desktop\" & "testfile.xlsm", UpdateLinks:=False
    MsgBox ("File saved successfully on desktop.")
    ThisWorkbook.Close SaveChanges = False

    On Error GoTo 0
    Exit Sub

Files_Error:

    MsgBox "Error " & Err.Number & " (" & Err.Description & ") in procedure Files of Sub Modul1"

End Sub

如果MsgBox之后无法保存文件,则会弹出一个新的MsgBox