Excel VBA工作薄 6.2利用msgbox窗口 實現簡易用戶對話功能

2021-03-02 Excel和VBA

前景提要

昨天我們分享了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,如果選擇了退出就只能退出程序了。 

之後就是最簡單的加減法的運算了。大家都能夠看懂了。

相關焦點

  • Excel vba 利用定義名稱實現用戶登錄功能
    文/江覓易見在vba 中實現用戶登錄,並對登錄用戶進行身份識別,然後對用戶進行分組管理,此類功能值得進一步思考。這裡介紹一種方法,利用Excel中的名稱管理來進行身份識別,起到用戶登錄次數以及增減用戶的功能。
  • VBA中,利用MSGbox函數實現人機對話
    在之前的文章中講過了VBA中人機對話函數中的INPUTBOX函數,今日將msgbox函數,同樣也是一個人機對話的函數,不過,這個函數不能解決錄入的問題,只能解決確認的問題,比如當程序運行到一定的程度,需要你判斷是否需要繼續進行;再比如,由於避免誤操作需要你再次判斷某個動作時,這時就會用到這個函數了。
  • #Excel VBA#解讀(20):用戶交互初體驗—MsgBox函數
    vbDefaultButton4768第四個按鈕為默認按鈕vbSystemModel4096所有應用程式都暫停,直至用戶對消息框作出反應vbMsgBoxHelpButton16384顯示幫助按鈕 獲取響應的值在用戶單擊了
  • excel VBA是什麼?VBA編程入門教程
    本篇將介紹excel vba是什麼?vba編程入門教程,有興趣的朋友可以了解一下!一、excel vba是什麼?VBA的英文全稱是Visual Basic for Applications,是一門標準的宏語言。VBA語言不能單獨運行,只能被office軟體(如:Word、Excel等)所調用。
  • VBA學習筆記 1-1
    ''  ActiveCell.Font.Bold = True    ActiveCell.FormulaR1C1 = "穆澤"    ActiveCell.Offset(1, 0).Range("A1").Select  End Sub測試顯示:當前滑鼠位置輸入名字excel
  • VBA學習筆記 1-2
    字符串規定:dim mystring as string *50  最大五十 dim yourstring as stting   賦值語句:進行數學計算並將結果賦給某個變量或對象x=1 x=x+1x=(y*2)/(z*2)fileopen =truefileopen
  • Excel VBA輸出msgbox函數,這個輸出函數你知道多少
    prompt是對話框消息出現的字符串表達式,title為對話框標題欄中字符串,buttons參數後面會具體說明。helpfile,context是與幫助文件相關基本省略。首先說明一下語句和函數兩種形式的區別,msgbox語句形式,僅顯示內容,點擊確定不會產生其他結果。
  • excel根據目錄新建工作表及工作薄,再也不用一個一個的製作了
    Hello,大家好,今天跟大家分享下我們如何根據目錄批量的新建工作表以及工作薄,這是一個粉絲提問的問題,要求根據姓名批量的新建工作表以及工作薄,開始之前先跟大家講解什麼是工作表以及工作薄,因為真的有很多人都分不清這兩個的區別
  • vba第十六課
    vba第十六課錯誤分支語句1On error resume next 例:sub onerror()Dim a!On error resume nextFor a = 2 To 11 Cells(a, 6) = Cells(a, 3) + Cells(a, 4) + Cells(a, 5)Next100:End Sub
  • excel如何實現更改數據就自動填充顏色的功能?你需要用到它
    Hello,大家好,工作中是不是有遇到這樣的情況,當我們做好的表格發給領導後,領導修改了下說可以了,但是因為數據太多,不知道修改了哪裡,十分的鬱悶,今天就跟大家分享下在excel中如果別人更改了單元格就會自動的填充顏色實現這樣的功能我們需要使用
  • Excel VBA宏入門班9期搶座開始了!零基礎學習,一月學會VBA
    2、第1個VBA程序——商品信息查詢(一鍵完成)       3、變量與數據類型二、選擇結構       1、判斷成績的優良       2、判斷閏年       3、讓女神對你說「我愛你,譚科」(此處的「譚科」自己換)       4、美女相親對話       5、自動獲取
  • 遍歷工作薄和工作表(For Each循環的利用)
    第三節 遍歷工作薄和工作表(For Each循環的利用)大家好,我們在這講中將講解遍歷循環語句,這種語句在VBA代碼中利用的十分普遍,也是我們在VBA代碼中經常利用的三種循環語句之一:For Each循環。下面我們將看到Excel vba中的一個程序,它遍歷循環所有打開的工作簿和工作表,並顯示所有的名稱。
  • Excel VBA宏入門班8期,開始搶座了!零基礎學習,一月學會VBA
    2、第1個VBA程序——商品信息查詢(一鍵完成)       3、變量與數據類型二、選擇結構       1、判斷成績的優良       2、判斷閏年       3、讓女神對你說「我愛你,譚科」(此處的「譚科」自己換)       4、美女相親對話       5、自動獲取
  • 利用VBA代碼實現Msgbox函數定製化消息框
    NO.155-NO.156內容是:NO.155:Msgbox函數實現定製化人機對話消息框NO.156:在關閉工作簿前使用MsgBox函數顯示一個消息框,並根據用戶的回應用進行相應的操作。VBA過程代碼155:Msgbox函數實現定製化人機對話消息框Sub mynz ()MsgBox Prompt:="歡迎光臨【VBA語言】學習平臺,讓我一起學習!"
  • Excel VBA宏入門班9期搶座進行中!零基礎學習,一月學會VBA
    2、第1個VBA程序——商品信息查詢(一鍵完成)       3、變量與數據類型二、選擇結構       1、判斷成績的優良       2、判斷閏年       3、讓女神對你說「我愛你,譚科」(此處的「譚科」自己換)       4、美女相親對話       5、自動獲取
  • Excel vba工作表事件【實現快速自動隱藏工作表】
    後來編寫了如下代碼,其中我把字符「X」優化了一下,利用數據有效性,每個工作表名稱後面為隱藏和不隱藏兩個選擇:就可以實現,隱藏哪一個工作表,選中哪一個工作表後面的狀態後,工作表自動隱藏或者不隱藏。就可以實現批量隱藏或者不隱藏工作表功能。這個跟工作表事件的區別就是,工作表事件可以即刻生效,修改工作表狀態後立馬隱藏或者不隱藏。而這個改變工作表狀態名稱後,無法即刻生效。需要運行一下程序才能實現功能。
  • Excel VBA宏入門班8期,繼續搶座中!零基礎學習,一月學會VBA
    2、第1個VBA程序——商品信息查詢(一鍵完成)       3、變量與數據類型二、選擇結構       1、判斷成績的優良       2、判斷閏年       3、讓女神對你說「我愛你,譚科」(此處的「譚科」自己換)       4、美女相親對話       5、自動獲取
  • 如何實現在WORD中打開EXCEL文件
    ,這裡用了一個myfile變量來表示這個文件,在取得當前路徑後,用OPEN語句來實現打開的命令,當然在之前還要實現一下這個應用程式的引用Set XLApp = CreateObject("excel.application"),如果是在其他的應用程式,只需要變更這裡就可以實現不同的引用了。
  • 零基礎學習,Excel VBA(宏)入門班(11期)開始搶座了
    2、第1個VBA程序——商品信息查詢(一鍵完成)       3、變量與數據類型二、選擇結構       1、判斷成績的優良       2、判斷閏年       3、讓女神對你說「我愛你,譚科」(此處的「譚科」自己換)       4、美女相親對話       5、自動獲取
  • Excel實現信息管理系統之數據錄入界面設計步驟詳解
    本身excel就是一款功能強大的數據信息管理和分析軟體,我們如果在它的基礎上在設計信息管理的功能感覺有點多此一舉。但是大家仔細想想,我們在excel錄入數據時,很多時候都是在單元格中直接輸入,亦或者使用excel記錄單錄入數據,然後再進行數據處理,這種方式對於大眾來講非常簡單快捷。但是如果我們處理的數據量大,錄入數據時有若干列,或者多人錄入時,這樣直接輸入真的會很便捷嗎?