Access VBA中Eval调用MsgBox时@符号的转义字符是什么?
Access中Eval调用MsgBox时显示含@邮箱的解决办法
原格式化逻辑回顾
在Access里,通过Eval调用MsgBox可以实现带格式的弹窗:
Eval "MsgBox(""One@two@three"")"
这里的@是特殊分隔符:
@之前的文本(One)会显示为粗体- 后续的
@作为换行标记,two和three会分两行展示
问题场景
当需要在弹窗里显示含@的电子邮件地址时,直接写@会被当成格式分隔符处理,尝试过方括号、反斜杠、反引号、双@这些常规转义方式都无效。
可行解决方案
方案1:用Chr(64)替代邮箱中的@
利用Access的Chr()函数输出@的ASCII字符(编码64),绕过Eval对@的格式解析。示例代码:
' 仅显示邮箱(无额外格式) Eval "MsgBox(""请发送邮件至:user"" & Chr(64) & ""example.com"")" ' 保留粗体+换行的同时显示邮箱 Eval "MsgBox(""请发送邮件至@user"" & Chr(64) & ""example.com"" & ""@如有疑问请留言"")"
这个方法既保留了Eval调用MsgBox的格式能力,又能正确显示邮箱地址。
方案2:放弃格式化,使用普通MsgBox手动换行
如果不需要粗体格式,直接调用原生MsgBox,用vbCrLf手动添加换行,无需处理转义:
MsgBox "请发送邮件至:user@example.com" & vbCrLf & "感谢您的配合"
内容的提问来源于stack exchange,提问作者Matter
相关产品推荐
相关产品推荐

