如题vba代码如何创建代码在vba中创建新的vba函数

解决方案 »

  1.   

    Run 方法
    请参阅 应用于 示例 特性 
    运行 Visual Basic 宏expression.Run(MacroName, varg1, varg2, varg3, varg4, varg5, varg6, varg7, varg8, varg9, varg10, varg11, varg12, varg13, varg14, varg15, varg16, varg17, varg18, varg19, varg20, varg21, varg22, varg23, varg24, varg25, varg26, varg27, varg28, varg29, varg30)expression   必需。该表达式返回一个 Application 对象。MacroName   String 类型,必需。宏的名称。可以是任意模板、模块和宏名的组合。例如,下面的语句都是有效的:Application.Run "Normal.Module1.MAIN"
    Application.Run "MyProject.MyModule.MyProcedure"
    Application.Run "'My Document.doc'!ThisModule.ThisProcedure"
    如果指定了文档名,则此代码只能运行与当前环境有关的文档中的宏,而不是任何文档中的任何宏。varg1...varg30   Variant 类型,可选。宏参数值。在一个指定的宏中可以用 30 个参数。说明
    虽然 Visual Basic 代码无须使用该方法即可直接调用宏,但是如果宏保存在变量中,该方法将非常有用(详细内容,请参阅本主题的示例)。下列语句具有相同功能:Normal.Module2.Macro1
    Call Normal.Module2.Macro1
    Application.Run MacroName:="Normal.Module2.Macro1"
    示例
    本示例提示用户输入模板名、模块名、宏名以及参数值,然后运行该宏。Dim strTemplate As String
    Dim strModule As String
    Dim strMacro As String
    Dim strParameter As StringstrTemplate = InputBox("Enter the template name")
    strModule = InputBox("Enter the module name")
    strMacro = InputBox("Enter the macro name")
    strParameter = InputBox("Enter a parameter value")
    Application.Run MacroName:=strTemplate & "." _
        & strModule & "." & strMacro, _
        varg1:=strParameter