| 发表于:2008-01-04 16:18:44 楼主 |
请教各位大虾: 通过代码在excel中为自定义函数添加描述信息,我已经找到代码,但是不知道怎么实现这个方法。。。 代码如下: this example shows how to register functions into user-defined catagories and provide descriptions for their arguments. the auto_open procedure registers the two functions, multiply and divide in two categories multiplication and division and provides descriptions of the input parameters. const lib = """c:\windows\system\user32.dll""" option base 1 private function multiply(n1 as double, n2 as double) as double multiply = n1 * n2 end function '========================================== private function divide(n1 as double, n2 as double) as double divide = n1 / n2 end function '========================================== sub auto_open() register "divide", 3, "numerator,divisor", 1, "division", _ "divides two numbers", """numerator"",""divisor """, "charpreva" register "multiply", 3, "number1,number2", 1, "multiplication", _ "multiplies two numbers", """first number"",""second number """, _ "charnexta" end sub '========================================== sub register(functionname as string, nbargs as integer, _ args as string, macrotype as integer, category as string, _ descr as string, descrargs as string, flib as string) application.EXECuteexcel4macro _ "register(" & lib & ",""" & flib & """,""" & string(nbargs, "p") _ & """,""" & functionname & """,""" & args & """," & macrotype _ & ",""" & category & """,,,""" & descr & """," & descrargs & ")" end sub '========================================== sub auto_close() dim fname, flib dim i as integer fname = array("divide", "multiply") flib = array("charpreva", "charnexta") for i = 1 to 2 with application .EXECuteexcel4macro "unregister(" & fname(i) & ")" .EXECuteexcel4macro "register(" & lib & _ ",""charpreva"",""p"",""" & fname(i) & """,,0)" .EXECuteexcel4macro "unregister(" & fname(i) & ")" end with next end sub |
|
|
|
|