1 VBA和EXCEL使用符号常数有语法差别

1.1 语法差别

  • 比如EXCEL里使用char(10)
  • VBA中只能写成 chr(10)
  • VBA的语法错误,VBE没有把第1个首字母大写就应该看出来    char(13) 是错误的

 

1.2  举例: chr(32) 类空格

MsgBox "hello" & Chr(32) & "world" & Chr(32) & 1 & Chr(32) & 2 & 3

 

 

2 EXCEL里使用符号常数

2.1  EXCEL有些符号常数,生效还需要修改设置才会生效,比如 char(10)

  • char(10), LF, Line Feed, 换行,进纸一行
  • 但是必须在,设置EXCEL,这部分为自动换行后才生效。否则看不到效果。

 

 

 

2.2  EXCEL里一些常数的区别

  • chr(13)是回车符,enter
  • chr(10)是换行符,LF, Line Feed, 换行,进纸一行
  • 在word里回车键就是起到换行的效果
  • 在excel单元格里插入char(13)与char(10)不同,起不到强行换行的效果,实际操作必须 ctrl+enter

 

 

3 VBA里使用符号常数

3.1 VBA里使用chr(10)--不能写成char(10)

  • 第1类: 比如  chr(10)    chr(13)
  • 第2类: 典型的比如 vbcrlf
Sub test1()


Debug.Print "helloworld"
Debug.Print "hello  world"
Debug.Print "hello" & Chr(10) & "world"

Debug.Print "hello" & Chr(10) & Chr(10) & Chr(10) & "world"
Debug.Print "hello" & Chr(10); Chr(10); Chr(10) & "world"

Debug.Print "hello" & vbCrLf & "world"


End Sub


 

 

3.2 各种chr() 和 vbcrlf 比较

  •  chr(32):类空格
  •  chr(9):类tab
  •  chr(10):换行,相当于VBLF,LF, Line Feed, 换行,进纸一行
  •  chr(13):回车,相当于VBCR,回车的作用是回到当前行的首列。
  •  chr(13)+chr(10):回车+换行,相当于VBCRLF
  •  cr是回车,只有回车,是到本行的最头上;lf是换行,到下一行;crlf是到下一行的最头上
     

游戏的情况下是一样的,比如debug.print 和 msgbox

效果是一样的。现在的语言会经过转换的,自动变成“回车换行”的。
如果用汇编就可以看出效果了

 

3.3  在debug.print 和 msgbox() 上 没区别

  • 在debug.print 和 msgbox() 上
  • chr(10)  == chr(13) ==  char(10)+(13)
  • vblf  == vbcr== vbcrlf
Sub test1()
Debug.Print "helloworld"
Debug.Print "hello  world"
Debug.Print

Debug.Print "hello" & Chr(10) & "world"
Debug.Print "hello" & vbLf & "world"
Debug.Print

Debug.Print "hello" & Chr(13) & "world"
Debug.Print "hello" & vbCr & "world"
Debug.Print

Debug.Print "hello" & Chr(13) + Chr(10) & "world"
Debug.Print "hello" & vbCrLf & "world"

End Sub

 

Sub test2()
MsgBox "hello" & "world"

MsgBox "hello" & Chr(10) & "world"
MsgBox "hello" & Chr(13) & "world"

MsgBox "hello" & vbCr & "world"
MsgBox "hello" & vbLf & "world"

MsgBox "hello" & Chr(10) + Chr(13) & "world"
MsgBox "hello" & vbCrLf & "world"

End Sub

 

其他地方有差别??

https://blog.csdn.net/zlts000/article/details/12201001

2)、在窗体输出中的效果

        Chr(13) 、 Chr(10) 、 Chr(13)+Chr(10) 是换一行;
        Chr(10)+Chr(13)、两个Chr(13)、两个Chr(10) 是换两行。

    3)、在Text输出中的效果

         只有只有chr(10)+chr(13)或者VBCRLF可以换行,其他的没有换行的效果::需要注意,换行的前提是Text控件中属性MultiLine必须为True。      
 

 

4 VBA常用的符号常数

  • 在EXCEL 公式里可以使用 char(13) & char(10) 等等这种
  • 在VBA直接使用 vbcr vbcrlf等

 

常数描述
vbCrChr(13)回车符。
vbLfChr(10)换行符
vbCrLfChr(13) & Chr(10)回车符和换行符
vbNewLineChr(13) & Chr(10)或Chr(10)

平台指定的新行字符,适用于任何平台。

vbNullCharChr(0)ASCII码为0的字符。
vbNullString
  
值为0的字符串,但和""不同。
vbFormFeedChr(12)换页符,在Windows中不适用。
vbVerticalTabChr(11)垂直附签,在Windows中不适用。
vbTabChr(9)水平附签。
补充1Chr(32)空格
补充2Chr(34)双引号
补充3Chr(39)单引号

 

5 ASCII码

  • ASCii码全称:American Standard C
  • 英语编码
  • 因为计算机只认识二进制数0和,所以美国就编了一套编码来用这0和1 来表示一些字符如'a','c','1''*','$'等,让计算机能通过0,1识别他,这套编码被取名为ASCII码,American Standard Code...每个字符用7位表示~

 

  • Ascii码在很多编程语言里都是通用的,可以把  字母文字等 转化为对应的ASCII码数字
  • 从小到大的规律是:
  • 特殊字符,阿拉伯数字,大写英文字母,小写英文字母
  • 特殊字符  33之前     48之前都是
  • 数字:48-57
  • A-Z  65-90
  • a-z  97-122

 

 

VBA各种变量的初始默认值

https://blog.csdn.net/hpdlzu80100/article/details/80664914

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐