我想在用戶使用窗口右上角的x按鈕關閉表單時執行一些代碼(我在Excel電子表格它隱藏了Excel。我想在表格關閉時退出excel,或者至少再次顯示excel,以便用戶可以手動退出)在VBA中關閉表單時執行代碼(Excel 2007)
查看錶單屬性,Unload屬性不存在,我也無法弄清楚如何在表單關閉時執行一個函數。
不幸的是,在VB中編碼這不是一個選項,它必須是VBA。
我知道取消隱藏Excel或直接退出它的代碼,而不是如何將其與卸載事件綁定。
我想在用戶使用窗口右上角的x按鈕關閉表單時執行一些代碼(我在Excel電子表格它隱藏了Excel。我想在表格關閉時退出excel,或者至少再次顯示excel,以便用戶可以手動退出)在VBA中關閉表單時執行代碼(Excel 2007)
查看錶單屬性,Unload屬性不存在,我也無法弄清楚如何在表單關閉時執行一個函數。
不幸的是,在VB中編碼這不是一個選項,它必須是VBA。
我知道取消隱藏Excel或直接退出它的代碼,而不是如何將其與卸載事件綁定。
您可以在VBA中使用Unload Me
關閉表單。在這之後,請立即關閉Excel。
嘗試這樣的: -
Private Sub Form1_FormClosing(sender as Object, e as FormClosingEventArgs) _
Handles Form1.FormClosing
//Code you want to execute
End Sub
一位同事是能夠在這裏爲別人
Private Sub userform_terminate()
'Code goes here
End Sub
請注意,隱藏表單時也會觸發此操作。如果您只想捕捉右上角的關閉按鈕(x),請使用MRS1367的答案! – OfficialBAMM 2016-03-03 11:57:00
您可以使用窗體的將對QueryClose事件作爲提供答案,包括例如如下:
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
If CloseMode = 0 Then
' Your codes
' Tip: If you want to prevent closing UserForm by Close (×) button in the right-top corner of the UserForm, just uncomment the following line:
' Cancel = True
End If
End Sub
你可以al所以使用vbFormControlMenu這樣的:
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
If CloseMode = vbFormControlMenu Then
'Your code goes here
End If
End Sub
Private Sub Form_Unload(Cancel As Integer)
Dim msgRes As VbMsgBoxResult
msgRes = MsgBox("Exit form ?", vbYesNo)
If msgRes = vbYes Then
'optional code
ElseIf msgRes = vbNo Then
Cancel = True
End If
End Sub
目前還不清楚這是如何提供問題的答案。請闡明這個答案,指出原來的問題和你的特定解決方案。 – theMayer 2016-03-04 13:21:19
我能夠防止形式從收盤時的X按鈕是點擊使用如下:
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
Cancel = MsgBox("Please confirm cancellation", vbOKCancel + vbQuestion) = vbCancel
End Sub
謝謝,但這是如何讓我當用戶點擊x按鈕時執行代碼?也許我沒有明確提出問題,我現在就編輯它。 – Pixotic 2010-08-18 12:17:47
哦,我看到,我(錯誤地)認爲用戶正在通過單擊窗體按鈕退出,而不是窗口上的x按鈕。 – Michael 2010-08-18 12:34:09