excel split函数_VBA学习笔记30:自定义函数

7143970153c9eb47b0c33a2495258686.png

学习资源:《Excel VBA从入门到进阶》第30集 by兰色幻想

在VBA中有VBA函数,我们还可以调用工作表函数,我们能不能自已编写函数呢?

可以的!

一、自定义函数的结构

Function 函数名称(参数1,参数2....)
         
    代码
    函数名称=返回的值或数组
         
End Function

二、编写自定义函数

举几个例子:

1 取得工作表总个数的自定义函数

编写原理:工作表属性

Function shcount()
   shcount = Sheets.Count 
End Function

27f7acc9ea735428fcf0c58e6952f807.png

2 取得单元格显示值的自定义函数

编写原理:单元格属性

Function getv(rg As Range)  
    getv = rg.Text    
End Function

7afeedac83a5417a3f695b06fc51f999.png

66f066aad32bc089ceda6c9092ccfa14.png
A7是设置了自定义格式,输入1,显示的是1月

3 截取字符串的函数

编写原理:利用数组和Split函数

Function jiequ(sr As String, fh As String, wz As Integer)
    
Dim Arr
Arr = Split(sr, fh)
jiequ = Arr(wz - 1)
    
End Function

e3a5a7370ceb21ed553fcd1c27c6d10e.png

4 提取不重复值的个数

编写原理:利用字典key的唯一性

Function 不重复个数(rg As Range)

Dim d, Arr, ar
Arr = rg
Set d = CreateObject("scripting.dictionary")
For Each ar In Arr
    d(ar) = ""
Next ar

不重复个数 = d.Count

End Function

baa0ae065cba84d7c272f63a0e83b2d5.png

三、使用自定义函数

1.让自定义函数在所有工作簿中使用

把含有自定义函数的文件另存为加截宏,然后通过开发工具-加截宏-浏览找到这个文件-确定。

007f7373f19c3675f8ac3e9305626d83.png
另存为时,保存类型选为加载宏

1c3fa1407fa6afa0213af356cdb0e460.png
找到保存好的加载宏导入

3 给自定义函数添加说明

拿上面写的截取字符串的函数做例子:

Function jiequ(sr As String, fh As String, wz As Integer)
    
Dim Arr
Arr = Split(sr, fh)
jiequ = Arr(wz - 1)
    
End Function

d8007c5332fd30d3c0e10a4e21af5ec3.png
没有说明信息

254ddcf9ae405d5f5afc89450483d280.png
这是Excel原有的函数,可以看到它的说明

操作:开发工具-宏-在宏名输入框中输入自定义函数名“jiequ”-点击选项-输入说明-确认,关闭

d6436915f005aa80428eff9f39fdd5a9.png

这样就能在插入函数中看到它的说明了。

8a7c96e35bb9f8e06c4ffa0e8720553c.png

4 给自定义函数分类

还是以上面为例,jiequ函数只能在全部类别中找到。

可以到VBE里写一段程序,把它放到统计类别里。

    Sub 分类()
     Application.MacroOptions "jiequ", Category:=4
    End Sub

注:

0 是全部

1 财务

2 日期和时间

3 数学和三角

4 统计

5 查找和引用

6 数据库

7 文本

8 逻辑

9 信息

9f1c89e757f5f54f6e0820d74cead675.png
执行宏之后就能在统计类别找到jiequ函数
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值