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 自定义函数的主要内容,如果未能解决你的问题,请参考以下文章

EXCEL 的自定义 VBA 函数中的用户定义警告

使用工作表函数编写自定义 Excel 函数的问题

使用VBA代码实现简单自定义函数

VBA代码实现自定义函数2

一个可以使用多个正则表达式进行多次尝试匹配,并进行替换的Excel VBA自定义函数(UFD)

Excel VBA中的ThisCell属性如何使用?