大众计算机学习网

专门提供各种电脑教程

vba操作Excel之MsgBox函数实例介绍

Admin | 2011-6-5 9:33:58 | 被阅次数 | 13245

  接上篇

  二、MsgBox举例

  ①使用 MsgBox 函数,在具有“是”及“否”按钮的对话框中显示一条严重错误信息。

  示例中的缺省按钮为“否”,MsgBox函数的返回值视用户按哪一个钮而定。并假设DEMO.HLP为一帮助文件,其中有一个帮助主题代码为1000。

  Dim Msg,Style,Title,Help,Ctxt,Response,MyString
  Msg="Do you want to continue ?"     ’定义消息文本
  Style = vbYesNo + vbCritical + vbDefaultButton2     ' 定义按钮
  Title = "MsgBox Demonstration"     ' 定义标题文本
  Help = "DEMO.HLP"     ' 定义帮助文件
  Ctxt = 1000     ' 定义帮助主题
  Response = MsgBox(Msg, Style, Title, Help, Ctxt)
  If Response = vbYes Then     ' 用户按下“是”
       MyString = "Yes"     ' 完成某操作
  Else     ' 用户按下“否”
       MyString = "No"     ' 完成某操作
  End If

  ②只显示某消息

  MsgBox “Hello!”

  ③将消息框返回的结果赋值给变量

  Ans=MsgBox(“Continue?”,vbYesNo)
  If MsgBox(“Continue?”,vbYesNo)<>vbYes Then Exit Sub

  ④使用常量的组合,赋值组Config变量,并设置第二个按钮为缺省按钮

  Config=vbYesNo+vbQuestion+vbDefaultButton2

  ⑤若要在消息中强制换行,可在文本中使用vbCrLf(或vbNewLine)常量,用&加空格与字符隔开。如

  MsgBox “This is the first line.” & vbNewLine & “Second line.”

  ⑥可以在消息框中使用vbTab常量插入一个制表符。下面的过程使用一个消息框来显示5×5单元格区域中的所有值,用vbTab常量分隔列并使用vbCrLf常量插入一个新行。注意在MsgBox函数最多只显示1024个字符,因此限制了可显示的单元格数。

  Option Explicit
  Sub ShowRangeValue()
  Dim Msg As String
  Dim r As Integer, c As Integer
  Msg = ""
  For r = 1 To 5
     For c = 1 To 5
       Msg = Msg & Cells(r, c) & vbTab
     Next c
     Msg = Msg & vbCrLf
  Next r
  MsgBox Msg
  End Sub

  ⑦在消息框语句中运用工作表函数以及设置显示的数置格式,如下面语句所示:

  MsgBox " selection has " & m & " cells ." & Chr(13) & " the sum is :" & Application.WorksheetFunction.Sum(Selection) & Chr(13) & "the average is :" & Format(Application.WorksheetFunction.Average(Selection), "#,##0.00"), vbInformation, "selection count & sum & average" & Chr(13)