常量只能声明的时候赋值,不可以动态赋值。chr()本身是函数,chr(13)经过计算才能得到vbCr。
chr( ) 是“函数”,IDE都给你提示了:必须用“常数表达式”, 在定义常量时,那个“表达式”中是不允许有“函数”出现的, 即使“理论上函数值也是一个确定的结果”也不可以。 因此你的那个定义,要写成: Const str_const As String = "你好" & vbLf & "我是XX" 如果你要用于“显示”时起到换行效果,要注意“换行格式”。 在MsgBox (或API函数:MessageBox( ) )、Label控件、Print语句等中, 用1个vbLf、vbCr 或vbCrLf 的效果是一样的。 而“标准文本框控件”,你设置为“多行模式”后,要换行必须用 vbCrLf (即: 回车+换行), 单独的 vbCr 或 vbLf 都不能起到“强制换行”的作用;vbLf + vbCr (顺序反了)也照样不行。
Sub yy() Dim str_const As String str_const = "你好" & Chr(10) & "我是XX" Debug.Print str_const End Sub
[quote=引用 2 楼 Runnerchin 的回复:] Const str_const As String = "你好" & vblf & "我是XX" 在定义的时候,允许字符串拼接,但是每个部分都必须是常量,vblf(ascii 10, \n), vbcr(ascii 13, \r), vbcrlf都是常量, chr(xx)不是常量。 另外,不同操作系统的换行不一样,比如windows用cr + lf ( \r\n ), linux里用 lf( \n),苹果系统用cr( \r)
Const str_const As String = "你好" & vblf & "我是XX" 在定义的时候,允许字符串拼接,但是每个部分都必须是常量,vblf(ascii 10, \n), vbcr(ascii 13, \r), vbcrlf都是常量, chr(xx)不是常量。 另外,不同操作系统的换行不一样,比如windows用cr + lf ( \r\n ), linux里用 lf( \n),苹果系统用cr( \r)
2,462
社区成员
10,807
社区内容
加载中
试试用AI创作助手写篇文章吧