Microsoft Office Tutorials and References
In Depth Information
Testing and Debugging Your Functions
This function returns an element from a delimited text string, and uses three arguments. For
example, the following formula returns the string fghi (the third element in the string, which uses
a dash to separate the elements):
=EXTRACTELEMENT(“ab-cde-fghi-jkl”, 3 “-”)
Following is a VBA Sub procedure that adds argument descriptions, which appear in the
Function Arguments dialog box:
Sub DescribeFunction()
Dim desc(1 To 3) As String
desc(1) = “The delimited text string”
desc(2) = “The number of the element to extract”
desc(3) = “The delimiter character”
Application.MacroOptions Macro:=”EXTRACTELEMENT”,
ArgumentDescriptions:=desc
End Sub
The argument descriptions are stored in an array, and that array is used as the ArgumentDescriptions
argument for the MacroOptions method. You need to run this procedure only one time. After
doing so, the argument descriptions are stored in the workbook.
Testing and Debugging Your Functions
Naturally, testing and debugging your custom function is an important step that you must take to
ensure that it carries out the calculation that you intend. This section describes some debugging
techniques that you may find helpful.
If you’re new to programming, the information in this section will make a lot more
sense after you’re familiar with the material in Chapter 24.
VBA code that you write can contain three general types of errors:
h Syntax errors: An error in writing the statement — for example, a misspelled keyword, a
missing operator, or mismatched parentheses. The VB Editor lets you know about syntax
errors by displaying a pop-up error box. You can’t use the function until you correct all
syntax errors.
h Runtime errors: Errors that occur as the function executes. For example, attempting to
perform a mathematical operation on a string variable generates a runtime error. Unless
you spot it beforehand, you won’t be aware of a runtime error until it occurs.
h Logical errors: Code that runs but simply returns the wrong result.
 
Search JabSto ::




Custom Search