Excel 使用VBA 自定义函数
Posted 欢迎光临
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Excel 使用VBA 自定义函数相关的知识,希望对你有一定的参考价值。
- 启用Excel开发工具
- 打开Excel 的VBA (ALT+F11)
- 新键VBA工程模块
- 写入自定义函数
Function HexIPAddr(strIPAddr As String, isAsc As Boolean) As String Dim arry, bit0 As String, bit1 As String, bit2 As String, bit3 As String arry = Split(strIPAddr, ".") bit0 = Hex(arry(0)) bit1 = Hex(arry(1)) bit2 = Hex(arry(2)) bit3 = Hex(arry(3)) If Len(bit0) = 1 Then bit0 = "0" + bit0 End If If Len(bit1) = 1 Then bit1 = "0" + bit1 End If If Len(bit2) = 1 Then bit2 = "0" + bit2 End If If Len(bit3) = 1 Then bit3 = "0" + bit3 End If If isAsc = True Then HexIPAddr = bit0 + bit1 + bit2 + bit3 Else HexIPAddr = bit3 + bit2 + bit1 + bit0 End If End Function
- 另存为 启用宏 的工作簿
-
重新打开即可使用刚刚创建的自定义函数
VBA-自定义函数和带参数的过程
自定义函数
在VBA中自定义函数 使用如下 function 函数名 (输入的参数)
Function zmj(str As String) zmj = str / 6.4 + str * 2 + 8 End Function
VBA中有个很好用的函数split 分割 可以通过自定义函数将其写成公式 应用到 excel中
Function eSplit(str As String, str1 As String, i As Integer) eSplit = Split(str, str1)(i - 1) 字符 按什么分割 取第几个数组中的数 End Function
带参数的过程
作用是能节省代码 如下面 两个表sheet1 sheet2都需要创建表 ,但是创建表的规则是一样的,那么可以把相同的代码,创建成带参数的过程
Sub cjb(str1 As String) Dim sht As Worksheet For Each sht In Sheets If sht.Name = str1 Then k = 1 End If Next If k = 0 Then Sheets.Add after:=Sheets(Sheets.Count) Sheets(Sheets.Count).Name = str1 End If End Sub --------------------------- Sub abc1() Call cjb(Sheet1.Range("a2")) Sheet1.Select End Sub --------------------------- Sub abc2() Call cjb(Sheet2.Range("a2")) Sheet2.Select End Sub
加载宏
我们编写的比较通用性的代码可以放在excel的代码库里,这样以后就可以像正常函数一样使用
第一步:将代码添加到excel的代码库中
1)然后点击文件 >>>另存为 >>>>浏览 然后 出现对话框 点击 保存类型>>>再点击excel97-2003加载宏 或者 excel 加载宏 都行,然后,可以修改文件名(建议是:自编代码库)然后 点击保存。
第二步:加载宏
1)点击任意excel文件>>点击文件>>点击选项
2)然后出现窗口,点击“加载项”,再点击“转到”
3)之后出现下面窗口 勾线 你上面保存的文件名 然后再确定
第三步:制作按钮
操作如下
然后以后就能
以上是关于Excel 使用VBA 自定义函数的主要内容,如果未能解决你的问题,请参考以下文章