前景提要
昨天我們分享了vba中msgbox的簡單的使用方法,在昨天的學習中,我們知道了msgbox的幾個不常用的參數,當時我們說在簡單的彈窗提示的時候,是不需要這麼多複雜的功能的,但是在進行用戶對話窗體的過程中,這些功能就比較使用了,但是一個簡單的彈窗如何實現用戶對話交互功能呢?很簡單,換一種寫法就可以了。
場景模擬假設我們現在要做一個簡單的計算,方法不確定
但是不一定就是加法,也不一定就是減法,所以在寫代碼的 過程中,我們就不能夠將這個操作寫死了,如果寫死的話,就非常的不靈活了,不可能要用減法的時候,你去代碼中改成減法,結果下次要用加法的時候,你再去改成加法運算吧,這是一個非常low的代碼,那麼如何提升通用性呢?
很簡單,這時候我們設計一個簡單的對話窗體,讓使用者來根據自己的需要進行選擇他想要的方法,既然是簡單的窗體,我們就不需要製作窗體了,直接用msgbox來實現,來看代碼
代碼區
Sub jisuan()Dim result$result = MsgBox("請選擇要進行的運算方法,Y執行加法,N執行減法,退出選擇取消", vbYesNoCancel, "運算方式的選擇")If result = vbYes Then Cells(7, 4) = "+" Cells(7, "g") = Cells(7, 3) + Cells(7, 5) ElseIf result = vbNo Then Cells(7, 4) = "-" Cells(7, "g") = Cells(7, 3) - Cells(7, 5) Else Cells(7, 4) = "" Cells(7, "g") = "" Exit SubEnd IfEnd Sub來看看效果,假設我們想要做加法運算
點擊按鈕能,之後出現彈窗,有三種操作可供選擇,Y代表加法,N代表減法,如果還沒有想好,就選擇取消退出程序,來試下加法
再來試下減法
如果還沒有想好呢
非常完美,通過msgbox成功實現了和用戶之間對話式的交互效果,這樣我們的代碼的通用性就更加的高了。
代碼分析
result = MsgBox("請選擇要進行的運算方法,Y執行加法,N執行減法,退出選擇取消", vbYesNoCancel, "運算方式的選擇")今天的關鍵代碼之一就是這一句話
利用之前的msgbox窗體,msgbox其實是由返回值的,我們這裡用result來承接msgbox返回的結果
這裡新增一個知識點,vbYesNoCancel
他的作用是形成有三個選項的窗體
這個方法的選項還有很多種,大家在使用的過程中可以根據使用自己想要的模式
然後當用戶做出了選擇之後,result就會得到一個返回值,如果選擇Yes,返回的結果就是VBYES,如果選擇的是NO ,返回的就是VBNO,如果選擇了退出就只能退出程序了。
之後就是最簡單的加減法的運算了。大家都能夠看懂了。