VB中这段代码的解释

来源:百度知道 编辑:UC知道 时间:2024/05/18 08:10:57
Dim lsTemp As String
lsTemp = Right(Text3, 7)
If Left(lsTemp, 1) = 2 Then
Else
Mid(lsTemp, 1, 1) = 2
End If
Text3 = Left(Text3, Len(Text3) - 7) & lsTemp

整段是这个,我要问的是
Left(Text3, Len(Text3) - 7) & lsTemp
这句的意思

如果text3= abcdefghigklm (总共13个字符)
LEN(TEXT3) =13
LEFT(Text3, Len(Text3) - 7)=abcdef
lsTemp =Right(Text3, 7) =ghigklm
Left(Text3, Len(Text3) - 7) & lsTemp =abcdefghigklm

Left(Text3, Len(Text3) - 7) & lsTemp

括号是优先计算符,所以看这句话的时候要先从里面往外面分析。
首先是 len(Text3) ,是计算Text3这个字符串的长度,然后用这个长度-7,然后计算left(Text3,上次计算的结果),就是将Text3从左边开始取出上次计算的结果的数字这么长的字符串,然后&是连接字符串的符号,也就是把left函数取出来的字符串和lsTemp连接起来。

具体例子可以参考楼上的答案

Left(Text3, Len(Text3) - 7) & lsTemp

从Text3左边的第一个字符开始数到Text3字符长度-7的地方为止再连接字符串lstemp中的值

Dim lsTemp As String
lsTemp = Right(Text3, 7) isTemp 为text3中字符串后7位
If Left(lsTemp, 1) = 2 Then 如果text3中后7位的第一位是2
Else 什么都不做
Mid(lsTemp, 1, 1) = 2 否则,将后7位的第一位改为2
End If
Text3 = Left(Text3, Len(Text3) - 7) & lsTemp 重新设置text3中的内容,由Left(Text3, Len(Text3) - 7)和lsTemp 构成 &是连接字符串用的

整段代码的功能就是验证text3中倒数第7位是不是2,不是2就改成2,就这么简单