欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  Office

VBA如何自定义函数及使用、添加说明、分类

程序员文章站 2022-05-22 13:14:09
'1 什么是自定义函数? '在VBA中有VBA函数,我们还可以调用工作表函数,我们能不能自已编写函数呢?可以,这就是本集所讲的自定义函数 '2 怎么编写自定义函...

'1 什么是自定义函数?

'在VBA中有VBA函数,我们还可以调用工作表函数,我们能不能自已编写函数呢?可以,这就是本集所讲的自定义函数

'2 怎么编写自定义函数?

 '我们可以按下面的结构编写自定义函数

  ' Function 函数名称(参数1,参数2....)

       '代码

       '函数名称=返回的值或数组

  ' End Function 

'1 怎么让自定义函数在所有工作簿中使用?

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

'2 怎么给自定义函数添加说明

  '工具-宏-宏名输入自定义函数的名称-选项--在说明栏中写入这个函数的名称

'3、怎么给自定义函数分类

  Sub 分类()

   Application.MacroOptions "不重复个数", Category:=4

  End Sub

 '注:

       '0 是全部

       '1 财务

       '2 日期和时间

       '3 数学和三角

       '4 统计

       '5 查找和引用

       '6 数据库

       '7 文本

       '8 逻辑

       '9 信息

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

Function shcount()

shcount = Sheets.Count

End Function

Sub dd()

MsgBox getv(Range("a7"))

End Sub

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

Function getv(rg As Range)

  getv = rg.Text

End Function

'3 截取字符串的函数

Function jiequ(sr As String, fh As String, wz As Integer)

  Dim Arr

  Arr = Split(sr, fh)

  jiequ = Arr(wz - 1)

End Function

'4 提取不重复值的个数

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

Sub test()

MsgBox jiequ("A-BRT-C-EF", "-", 2)

End Sub