我很新vba excel。我正在嘗試爲vba excel中的報表格式化任務開發一些小工具。我知道如果我把下面的代碼放入一個按鈕,它會卸載我的表單,但我怎麼能重寫一個msgbox的按鈕來卸載整個用戶表單?如何覆蓋msgbox按鈕以卸載VBA中的用戶窗體?
Unload UserForm1
我很新vba excel。我正在嘗試爲vba excel中的報表格式化任務開發一些小工具。我知道如果我把下面的代碼放入一個按鈕,它會卸載我的表單,但我怎麼能重寫一個msgbox的按鈕來卸載整個用戶表單?如何覆蓋msgbox按鈕以卸載VBA中的用戶窗體?
Unload UserForm1
如果我理解你的問題正確的(並且與克里斯我不知道,我這樣做),你知道,一個MsgBox可以返回一個值,你可以使用該值關閉您的形式?例如,第一個返回值,第二個沒有:
Dim l As Long
l = MsgBox("What do you want to do?", vbOKCancel)
If l = vbCancel Then
Unload UserForm1
Else
MsgBox "You selected 'OK'"
End If
您可以使用返回值(L)來告訴叫MSGBOX卸載窗體的代碼。
嗨Alan的按鈕。感謝您的回覆。當我嘗試時,它會給兩個按鈕提供一個msgbox。 (確定並取消)當我點擊確定按鈕時,它不會卸載窗體,它落在代碼中的Else語句中。但是當我點擊取消按鈕,它的作品。 :S –
是的,如果你讀過上面的代碼,那就是它打算做的。我給你說明了這個消息框如何可以有不同的按鈕(取決於你傳遞的參數;在本例中是vbOkCancel),並且每個按鈕都返回一個不同的值(在本例中爲vbCancel或vbOK)。然後,您可以像我這裏所做的那樣使用If塊來根據用戶單擊哪個按鈕來選擇要執行的操作。如果你只想要一個按鈕,就可以創建參數vbOKOnly,但在這種情況下,你不需要If語句;只需在msgbox之後的下一行中卸載表單即可。 –
好吧然後。我使用'vbOKOnly',並在'If'和'Else'語句中寫入'Unload UserForm1'。這解決了我的問題:) 在問我之前,我已經猜到MsgBox可能會像java的swing - JOptionPane一樣被覆蓋,但不知道如何,所以我認爲這將是一個問題。感謝您的幫助 –
不完全確定你的意思。你的意思是你想通過點擊一個按鈕來關閉用戶窗體? – Chris
是的。我希望我的程序完全關閉,當用戶點擊msgbox –