找回密码
 立即注册
搜索

EXCEL VBA 使用msgbox制作帮助文件对话框

5
回复
773
查看
[复制链接]

14

主题

486

帖子

332

幻币

豪侠武师

Rank: 4

积分
822
QQ
2016-4-12 13:32:48 显示全部楼层 |阅读模式
假设你的表格有一些帮助内容 这些内容一般放于比较后的列 比如BB列
假设存放BB列 从BB2开始一直往下存放 每行存放一句
先在BB1=SUM(IF(($BB$2:$BB$100)"",1,0)) 三键按下执行数组公式 返回该区域非空单元格[即有数据]的数量
这个区域要求数据之间不能有空单元格 BB100的行数视实际情况可增减 尽量取大一点
创建一个按钮 指定宏 代码如下
Option Explicit
Sub 总览_各表共性()
Dim i
Dim str1
str1 = "此内容存于BB列"
For i = 2 To 1 + Range("bb5").Value
str1 = str1 & vbNewLine & vbNewLine & Range("bb" & i).Value
Next
MsgBox str1
End Sub
以后只要按下这个按钮 你放在后面列的帮助内容就会以对话框形式显示出来
代码中的行列可以按实际情况进行修改
结果如下图
1432222jii8s2rca9e88lk.jpg
PPT学习论坛
回复

使用道具 举报

20

主题

240

帖子

52

幻币

一流武者

Rank: 3Rank: 3

积分
299
QQ
2016-4-12 17:20:48 显示全部楼层
以前傻乎乎的 不懂得用for来连接字符串内容 有多少行 就用多少个range().value 不是一般痛苦
PPT学习论坛
回复 支持 反对

使用道具 举报

12

主题

215

帖子

37

幻币

一流武者

Rank: 3Rank: 3

积分
272
QQ
2016-4-12 17:27:16 显示全部楼层
假设BB2:BB100中间有空行且空行间距不定,显示出来的内容岂不很难看?
另:=SUM(IF(($bb$2:$bb$100)<>&quot;&quot;,1,0))
完全可以:
=SUM(n(bb2:bb100<>&quot;&quot;))
或者直接用COUNTA(bb2:bb100)即可。
但如果中间有不确定的空行,你的公式、代码都麻烦了。
PPT学习论坛
回复 支持 反对

使用道具 举报

17

主题

214

帖子

47

幻币

一流武者

Rank: 3Rank: 3

积分
268
QQ
2016-4-12 17:33:16 显示全部楼层
解决办法:
假设BB2开始输入帮助内容,且不确定此后空行,则直接用代码:

  • Sub Hlp()
  •     Dim cH$
  •     nR=[bb65536].End(xlUp).Row
  •     If nR<2 Then Exit sub
  •     For i=2 To nR
  •         If Cells(i,&quot;bb&quot;)<>&quot;&quot; Then cH=cH & Cells(i,&quot;bb&quot;) & Chr(10)
  •     Next
  •     If cH<>&quot;&quot; Then MsgBox cHEnd Sub

复制代码
PPT学习论坛
回复 支持 反对

使用道具 举报

20

主题

208

帖子

54

幻币

一流武者

Rank: 3Rank: 3

积分
282
QQ
2016-4-12 18:08:12 显示全部楼层
刚学VBA和数组没几天 不要要求那么高啊 对于数据不是那么庞大的 能实现功能就不错了 :)
PPT学习论坛
回复 支持 反对

使用道具 举报

13

主题

198

帖子

39

幻币

一流武者

Rank: 3Rank: 3

积分
241
QQ
2016-4-12 18:11:00 显示全部楼层
高人 你的比较高深 我的比较通俗 适合初学者理解 你的代码 有几行 我还看不懂 哈哈 别见怪 继续学习 谢谢
PPT学习论坛
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册