自定义的自己写的,都很简单,也实用。慢慢补充。
也有部分是自带的。
字符处理
字符分割
名称:Field
类型:自定义
用途:取字符串中被分割后指定的域
实例:Field("A_B_CC_D_EE","_",3)
结果:CC
解释:将"A_B_CC_D_EE"用"_"分割,分割会有五份,取第3份
源码:
Function Field(source, delimiter, index)
v_array = Split(source, delimiter)
Field = v_array(index-1)
End Function
字符替换
名称:SUBSTITUTE
类型:原生
用途:用新字符串替换老字符串
实例:SUBSTIUTE("A_B_CC_D_EE","_"," ")
结果:A B CC D EE
解释:将"A_B_CC_D_EE"中的"_"替换为空格
获取重复列表中的唯一值
Public Function getDistinct(s)
Dim d As Object
Set d = CreateObject("scripting.dictionary")
arr = Split(s, ",")
For i = 0 To UBound(arr)
d(arr(i)) = ""
Next i
getDistinct = Join(d.keys, ",")
End Function
字符转数字
Function GetNumber(val)
Dim v_return As Integer
Dim v_index As Integer
v_index = 0
For i = Len(val) To 1 Step -1
v_return = v_return + ((Asc(UCase(Mid(val, i, 1))) - 64) * 26 ^ v_index)
v_index = v_index + 1
Next i
GetNumber = v_return
End Function
Function GetField(val)
Dim v_return As String
Dim v_temp As Integer
Dim v_mod As Integer
v_temp = val
For i = 1 To 10
v_mod = v_temp Mod 26
v_return = v_return + Chr(v_mod + 64)
v_temp = Int(v_temp / 26)
If v_temp < 26 Then
v_return = v_return + Chr(v_temp + 64)
i = 100
End If
Next i
GetField = v_return
End Function