ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 3464|回复: 15

[求助] msgbox无法正常显示单元格中的内容如何处理?

[复制链接]

TA的精华主题

TA的得分主题

发表于 2018-7-29 14:27 | 显示全部楼层 |阅读模式
本帖最后由 renahu 于 2018-7-29 17:18 编辑

11111111111.jpg
把英[fɪʃ]美[fɪʃ] 放入cells(1,1)
msgbox cells(1,1)

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-7-29 18:20 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
英[fɪʃ]美[fɪʃ]   无解吗?

TA的精华主题

TA的得分主题

发表于 2018-7-29 21:37 | 显示全部楼层
新增一个模块,把下面的代码粘贴进去,然后再运行你自己的代码测试:

  1. Option Explicit
  2. '>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  3. '>>>>>>>>   Author:     Joforn                            <<<<<<<<<<<<<<<<<<
  4. '>>>>>>>>   Email:      Joforn@sohu.com                   <<<<<<<<<<<<<<<<<<
  5. '>>>>>>>>   QQ:         42978116                          <<<<<<<<<<<<<<<<<<
  6. '>>>>>>>>   Last time : 10/31/2015                        <<<<<<<<<<<<<<<<<<
  7. '<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<


  8. #If VBA7 Then
  9.   Private Declare PtrSafe Function MessageBoxTimeout Lib "user32" Alias "MessageBoxTimeoutW" ( _
  10.     ByVal hWnd As Long, ByVal lpText As LongPtr, _
  11.     ByVal lpCaption As LongPtr, ByVal wType As Long, _
  12.     ByVal wLange As Long, ByVal dwTimeout As Long) As Long
  13. #Else
  14.   Private Declare Function MessageBoxTimeout Lib "user32" Alias "MessageBoxTimeoutW" ( _
  15.     ByVal hWnd As Long, ByVal lpText As Long, _
  16.     ByVal lpCaption As Long, ByVal wType As Long, _
  17.     ByVal wLange As Long, ByVal dwTimeout As Long) As Long
  18. #End If
  19. Private lngTimeOut As Long

  20. Public Property Let MsgboxTimeOutSecond(ByVal TimeOut As Long)
  21.   On Error GoTo LetSecondError
  22.   If TimeOut < 0 Then
  23.     lngTimeOut = 0
  24.   Else
  25.     lngTimeOut = TimeOut * 1000
  26.   End If
  27.   Exit Property
  28. LetSecondError:
  29.   lngTimeOut = &H7FFFFFFF
  30. End Property

  31. Public Property Let MsgboxTimeOut(ByVal TimeOut As Long)
  32.   If TimeOut < 0 Then
  33.     lngTimeOut = 0
  34.   Else
  35.     lngTimeOut = TimeOut
  36.   End If
  37. End Property

  38. Public Property Get MsgboxTimeOut() As Long
  39.   MsgboxTimeOut = lngTimeOut
  40. End Property

  41. Public Function Msgbox(ByVal Prompt As String, Optional ByVal Buttons As VbMsgBoxStyle = vbOKOnly, _
  42.                  Optional ByVal Title As String = vbNullString, Optional ByVal TimeOut As Long = -1&, _
  43.                  Optional ByVal LangeId As Long = 0&) As VbMsgBoxResult
  44.   'TimeOut以毫秒为单位,1 second = 1000 ms,TimeOut值为0时表示不自动返回,为负值时表示使用全局默认值
  45.   '如果信息框弹出后,用户未点击任何按钮,将返回3200,但如果Buttons的按钮值为VbOkOnly时,返回VbOk
  46.   
  47.   If TimeOut < 0 Then TimeOut = lngTimeOut
  48.   If Len(Title) < 1 Then Title = Application.Caption
  49.   Msgbox = MessageBoxTimeout(Application.hWnd, StrPtr(Prompt), StrPtr(Title), Buttons Or &H2000&, LangeId, TimeOut)
  50. End Function
复制代码

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-7-30 08:00 | 显示全部楼层
joforn 发表于 2018-7-29 21:37
新增一个模块,把下面的代码粘贴进去,然后再运行你自己的代码测试:

这里使用API,不错,只是中间的三个函数起什么作用呢?去掉也能用,还有就是就是使用过程中表中的其他控件会自动被屏蔽掉,点击确定msgbox关闭后才重新显示出来,不知能否不屏蔽其他控件?再有就是我发现使用textbox控件也会出现特殊字符无法显示问题,只不过是点击控件正常显示,再点击表格就无法正常显示,不知能否解决?

TA的精华主题

TA的得分主题

发表于 2018-7-30 08:31 | 显示全部楼层
renahu 发表于 2018-7-30 08:00
这里使用API,不错,只是中间的三个函数起什么作用呢?去掉也能用,还有就是就是使用过程中表中的其他控 ...

前面三个函数是为了全局配置所有Msgbox自动关闭时间(因为一般的代码中Msgbox后两个参数都未被使用到),当在使用MsgboxTimeOutSecond=2后,所有的Msgbox都会在显示两秒后自动退出,而不用再去修改每一个Msgbox参数成Msgbox "提示信息","标题",2000。
另外,Msgbox最后一个参数是语言ID。

另外TextBox不能用这种简单的方式。

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-7-30 09:02 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-7-30 09:05 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
joforn 发表于 2018-7-30 08:31
前面三个函数是为了全局配置所有Msgbox自动关闭时间(因为一般的代码中Msgbox后两个参数都未被使用到), ...

谢谢,关于api运行期间其他控件被屏蔽的问题是不是也不好解决?

TA的精华主题

TA的得分主题

发表于 2018-7-30 09:27 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
renahu 发表于 2018-7-30 09:05
谢谢,关于api运行期间其他控件被屏蔽的问题是不是也不好解决?

请上传的附件测试,没有测试,不好给你建议。

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-7-30 09:37 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
joforn 发表于 2018-7-30 09:27
请上传的附件测试,没有测试,不好给你建议。

这个网站这两天有问题,发图发附件都发不出来,等会儿看看能不能发

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-7-30 09:43 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
终于发上来了

测试.zip

17.63 KB, 下载次数: 1

您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2025-1-11 07:03 , Processed in 0.025778 second(s), 13 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表