在userformmacrosVBA中的X中添加操作

我有一个macros从其他工作簿(test.xlsm)获取源的用户窗体。 所以我使用下面的代码打开该工作簿而不显示它。

Const fromFile = "C:\Users\excel\test.xlsm" Dim srcBook As Workbook Set srcBook = Application.Workbooks.Open("C:\Users\excel\test.xlsm", _ UpdateLinks:=False, _ ReadOnly:=True, _ AddToMRU:=False) 

用户窗体

所以当macros运行的时候,用户窗体显示出来了,后台也是test.xlsm。 但是,有些用户在右上angular使用“X”符号closures用户窗体。 有时会出现错误,因为源(text.xlsm)没有正确closures。

我想知道是否有一种方法来添加一个动作,如果用户点击我的用户表单中的“X”button? 所以我想closures在后台运行的test.xlsm,如果用户点击“X”button。

您可以使用窗体的QueryClose -Event。 如果您将Cancel设置为true ,表单将不会closures

 Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer) Workbooks("test.xlsm").close End Sub 

这是您在UserForm中需要的,以便能够在请求closures时执行操作:

 Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer) Debug.Print "You Exited" End Sub 

一旦用户点击了X ,就会在即时窗口中看到“You Exited”。