系统函数
VBA中内置的、已将编写好的函数,可以在自己的程序中随时调用,实现一些常用的功能(如数学运算、文本处理等)
函数 | 功能 |
---|---|
len() | 返回一个字符串的长度 |
trim() | 返回一个新的字符串,该串的内容等于s去掉了两端的所有空格 |
Replace(s,a,b) | 返回一个新的字符串,该串的内容等于把 s 中所有的 a 都替换成 b 之后的样子 |
LCase()/UCase() | 转换大小写 |
Left(s,a)/Right(s,a) | 子串函数(一个字符串的一部分) |
Mid(s,i,a) | 子串函数 |
Instr(i,s,a) | 在 s 中寻找a,如果找到则返回a出现的位置(第几个字符)如果没有返回则返回() |
字符串分串
广渠路55号307室
--------------------------------
Sub test()
Dim s, 路字, 号字
s = Cells(1, 1)
路字 = InStr(s, "路")
号字 = InStr(路字, s, "号")
Cells(2, 3) = Left(s, 路字)
Cells(2, 4) = Mid(s, 路字 + 1, 号字 - 路字)
Cells(2, 5) = Right(s, Len(s) - 号字)
End Sub
For Each 和 WorkSheet 对象
格式: For Each a In b ⇒ 循环扫描b中的每一个元素,赋值给a
Next a
相当于:
For i=1 to b.count
a = b(i)
Next i
Sub 季度汇总()
Dim i, k, name
Dim w As WorkSheet,r As WorkSheet
Set r = WorkSheets("季度汇总")
For i = 3 To 10 '总表
name = r.Cells(i,2) ' 记录总表中的行数据 并准备去查找
For Each w In workSheets ' 声明表对象
If Right(w.name,1) = "月" Then '寻找月表
k = 3
Do While w.Cells(k,2) <> " "
If LCase(Trim(w.Cells(k,2))) = LCase(Trim(name))
For y = 3 To 6
r.Cells(i,y) = r.Cells(i,y) + w.Cells(k,y)
Next y
End If
Loop
Next w
Next i
End Sub