暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

排版MsgBox对话框内容

VBA语言専攻 2022-03-12
109
【分享成果,随喜正能量】善人者,人恒善之;助人者,人恒助之。人生的意外总难以预料,但一定要保持自己的善良,当你善心待人的时候,必定会收到别人的善意!
《VBA代码解决方案》这套教程是我最早推出的教程,目前已经是第二版修订了。这套教程定位于入门后的提高,在学习这套教程过程中,侧重点是要理解及掌握我的“积木编程”思想。要灵活运用教程中的实例像搭积木一下把自己喜欢的代码摆好。
这套教程共三册,一百四十七讲,内容覆盖较广,也是初级和中级间的过度教程,改版后的内容主要是提供程序源码文件及代码修正为32位和64位兼用代码。今后一段时间会给大家陆续推出。今日的内容是第38讲:排版MsgBox对话框内容

第三十八讲  如何对MsgBox对话框的内容进行排版,达到美观的效果

朋友们好,今日我们讲解VBA代码解决方案的第38讲,如何对MsgBox对话框进行排版,从而达到美观的效果。

1  排版字符的利用

如果在消息框中显示的字符串很长,比如是一段多行的文字内容,为了达到美观的效果,需要首字缩进,并将各行分隔开来,我们先看下面的几个符号,分别表示了不同的意义是非常有实用意义的。如:vbCrLf,Chr(13) + Chr(10)       表示回车符与换行符结合;vbCr,Chr(13)       表示回车符;vbLf,Chr(10)表示 换行符
另外,在用消息框显示多行多列的数据时,如果只用换行符(Chr(10))等进行换行,而数据列没有对齐,会使显示的信息显得杂乱无章,缺乏可读性,为了达到消息框中显示信息各列对齐的效果,在使用换行符(Chr(10))等进行换行的基础上,还需要使用制表符(Chr(9))或常数vbTab,对数据列进行分隔,使之排列整齐。

2  实现MsgBox对话框内容排版的代码及代码解读

如下面代码所示。
Sub mynz_38() '38  如何对MsgBox对话框的内容进行排版,达到美观的效果
 Sheets("38").Select
 Dim myMsg As String
 Dim iRow As Integer
 Dim iCom As Integer
  For iRow = 1 To 11
    For iCom = 1 To 5
      myMsg = myMsg & Cells(iRow, iCom) & Chr(9)
    Next
    myMsg = myMsg & Chr(10)
  Next
 MsgBox myMsg
End Sub

代码解读:

代码解析:mynz_38过程使用两层循环读取当前工作表中A1到E11单元格的内容,并用消息框显示出来。
1)第7行代码,iCom循环中在把逐列读取的单元格内容赋给变量mysMsg时插入一个制表符(Chr(9)),对列进行分隔。
2)第9行代码,iRow循环中在读取下一行单元格内容赋给变量myMsg时插入一个换行符(Chr(10)),对行进行换行。
3) 运行mynz_38过程将用消息框显示当前工作表中A1至E11单元格区域中的内容,并排列整齐.

再看看运行后的窗口:
 

这样在运行后弹出的窗口就非常的漂亮了。

今日内容回向:
1  Chr(13) 是什么意义?
2  Chr(10) 是什么意义?
3  Chr(9) 是什么意义?

本讲内容参考程序文件:VBA代码解决方案修订(1-48).xlsm


我20多年的VBA实践经验,全部浓缩在下面的各个教程中:
【分享成果,随喜正能量】有缘分,不拒绝,无缘分,不奢求。来的,欢迎,去的,相送。随缘不变,不变随缘。随遇而安,自在安然。放得下,才能更好地拿得起。
文章转载自VBA语言専攻,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论