VBA-JC第8节|文本处理与复杂工作表汇总

最近更新:'2019-05-15'

  1. 字符串函数
  2. For Each语句

1. 字符串函数

系统函数:vBA中内置的、已经编写好的函数,可以在自己的程序中随时调用,实现一些常用功能(如数学运算、文本处理等)

1.1函数:Sqr(a)

功能:计算并返回a的平方根

Sub 数学函数示例()
    Dim a
    a = Sqr(5)
    MsgBox a

End Sub
VBA-JC第8节|文本处理与复杂工作表汇总_第1张图片

1.2函数:Len(s)

功能:返回字符串s的长度,即s中有多少字符(一个中文字符长度也为1)
案例1:

Sub 字符串函数示例()
    Dim a, s
    s = "大家好abc"
    a = Len(s)
    MsgBox a

End Sub
VBA-JC第8节|文本处理与复杂工作表汇总_第2张图片

案例2:

Sub 字符串函数示例()
    Dim a, s
    s = "  大家好abc  "
    a = Len(s)
    MsgBox a

End Sub
VBA-JC第8节|文本处理与复杂工作表汇总_第3张图片

1.3函数:Trim(s)

功能:返回一个新的字符串,该串的内容等于s去掉了两端的所有空格。

Sub 字符串函数示例()
    Dim a, s
    s = "  大家好abc  "
    a = Trim(s)
    MsgBox "[" & a & "]"

End Sub

VBA-JC第8节|文本处理与复杂工作表汇总_第4张图片

注意事项:
1.trim(s)中的s没有发生任何的变化,两端仍然有空格.


VBA-JC第8节|文本处理与复杂工作表汇总_第5张图片

2.trim(s)中的s如果中间有空格,结果返回的只有两边的空格会消失,而中间空格还在.

1.4函数: Replace(s,a,b)

功能:返回一个新的字符串,该串的内容等于把s中所有的a都替换成b之后的样子。

Sub 字符串函数示例()
    Dim a, s
    s = "  大家      好 abc  "
    a = Replace(s, " ", ",")
    MsgBox a

End Sub

VBA-JC第8节|文本处理与复杂工作表汇总_第6张图片

1.5 函数:UCAse(s)和函数:LCase(s)

函数:UCAse(s)
功能:返回一个新的字符串,该串的内容等于把s中所有的英文字母都变成大写(其他字符不变)的样子。

函数: LCase(s)
功能:返回一个新的字符串,该串的内容等于把s中所有的英文字母都成小写(其他字符不变)的样子

VBA-JC第8节|文本处理与复杂工作表汇总_第7张图片

1.6函数: Right(s,a)

功能:从s的右边取出a个字符,构成新的字符串并返回。

Sub 字符串函数示例()
    Dim a, s
    s = "大家好abc"
    a = Right(s, 2)
    MsgBox a

End Sub

VBA-JC第8节|文本处理与复杂工作表汇总_第8张图片

1.7函数:Left(s,a)

功能:从s的左边取出a个字符,构成新的字符串并返回


Sub 字符串函数示例()
    Dim a, s
    s = "大家好abc  "
    a = Left(s, 2)
    MsgBox a

End Sub
VBA-JC第8节|文本处理与复杂工作表汇总_第9张图片

1.8函数:Mid(s,i,a)

功能:从s的第i个字符开始,取出a个字符返回。

Sub 字符串函数示例()
    Dim a, s
    s = "大家好abc"
    a = Mid(s, 1, 2)
    MsgBox a

End Sub
VBA-JC第8节|文本处理与复杂工作表汇总_第10张图片

1.9函数:InStr(s,a)

功能:在s中寻找a,如果找到则返回a出现的位置(第几个字符)如果没有找到则返回0。

Sub 字符串函数示例()
    Dim a, s
    s = "吃葡萄不吐葡萄皮"
    a = InStr(s, "葡萄")
    MsgBox a

End Sub
VBA-JC第8节|文本处理与复杂工作表汇总_第11张图片

函数:InStr(i,s,a)
功能:在s中,从第i个字符开始寻找a,如果找到则返回a出现的位置(第几个字符)如果没有找到则返回0。


Sub 字符串函数示例()
    Dim a, s
    s = "吃葡萄不吐葡萄皮"
    a = InStr(3, s, "葡萄")
    MsgBox a

End Sub
VBA-JC第8节|文本处理与复杂工作表汇总_第12张图片

1.10综合案例:


Sub test()
    s = "广渠路55号307室"
    
    路字 = InStr(s, "路")
    
    号字 = InStr(s, "号")
    
    Cells(2, 3) = Left(s, 路字)
    
    Cells(2, 4) = Mid(s, 路字 + 1, 号字 - 路字)
    
    Cells(2, 5) = Right(s, Len(s) - 号字)
End Sub

VBA-JC第8节|文本处理与复杂工作表汇总_第13张图片

2. For Each语句

VBA-JC第8节|文本处理与复杂工作表汇总_第14张图片

常见的使用方法如下截图:


VBA-JC第8节|文本处理与复杂工作表汇总_第15张图片

案例:
将4月,5月,6月的每个员工的业绩统一求和汇总在季度汇总表.如下截图:


VBA-JC第8节|文本处理与复杂工作表汇总_第16张图片

代码显示的最终结果如下

VBA-JC第8节|文本处理与复杂工作表汇总_第17张图片

你可能感兴趣的:(VBA-JC第8节|文本处理与复杂工作表汇总)