某人的博客

一路疯驰(沪ICP备15037456号-1)

博客搜索:

Excel常用函数

作者:Jason Yang 分类:其他 浏览:

自定义的自己写的,都很简单,也实用。慢慢补充。

也有部分是自带的。


字符处理

字符分割

名称: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




L最新评论
    还没有评论!

P发布评论