如何在宏中实现文档化?

job*_*ink 1 excel vba

如何在宏中实现文档?\n我已经为我的 Excel 工作表编写了一个自定义函数。但我不知道如何实现文档,以便如果在函数栏中键入该函数,则会像 Excel 中的标准函数一样显示解释。

\n\n

是否可以实施该文档?

\n\n

代码:

\n\n
Sub Macro1()\n'\n' Macro1 Macro\n'\nEnd Sub\n\nFunction AFRONDENONZEKERHEID(n As Double, decimalePlaatsen As Integer, Optional toggle As Boolean = False)\nIf n = 0 Then\n    Exit Function\nEnd If\n\nIf toggle Then\n    AFRONDENONZEKERHEID = Application.WorksheetFunction.Round(n, decimalePlaatsen)\n    Exit Function\nEnd If\n\nDim afgerond As Double\nDim procentueleAfnamen As Double\n\nafgerond = Application.WorksheetFunction.Round(n, decimalePlaatsen)\nprocentueleAfnamen = (afgerond - n) / n * 100\n\n\nIf procentueleAfnamen <= -5 Then\n    AFRONDENONZEKERHEID = Application.WorksheetFunction.RoundUp(n, decimalePlaatsen)\nElse\n    AFRONDENONZEKERHEID = afgerond\nEnd If\n\nEnd Function\n
Run Code Online (Sandbox Code Playgroud)\n\n

(抱歉荷兰变量)

\n

Exc*_*ero 5

是否可以实施该文档?

答案是肯定的。

您可以运行例程来注册您的函数。该例程将使用Macro.Options 方法

以下关于如何注册 UDF的示例来自 John Walkenbach:

这是一个简单(但非常有用)的用户定义函数:

Function EXTRACTELEMENT(Txt, n, Separator) As String
     EXTRACTELEMENT = Split(Application.Trim(Txt), Separator)(n - 1)
End Function
Run Code Online (Sandbox Code Playgroud)

下面是一个 VBA 宏,它提供了 EXTRACTELEMENT 函数的描述,将其分配给函数类别,并为其三个参数中的每一个提供了描述:

Sub DescribeFunction()
    Dim FuncName As String
    Dim FuncDesc As String
    Dim Category As String
    Dim ArgDesc(1 To 3) As String

    FuncName = "EXTRACTELEMENT"
    FuncDesc = "Returns the nth element of a string that uses a separator character"
    Category = 7 'Text category
    ArgDesc(1) = "String that contains the elements"
    ArgDesc(2) = "Element number to return"
    ArgDesc(3) = "Single-character element separator"

    Application.MacroOptions _
       Macro:=FuncName, _
       Description:=FuncDesc, _
       Category:=Category, _
       ArgumentDescriptions:=ArgDesc
End Sub
Run Code Online (Sandbox Code Playgroud)