Vba 宏未显示在“运行宏”菜单中

Vba 宏未显示在“运行宏”菜单中,vba,excel,ms-word,Vba,Excel,Ms Word,我开始学习VBA,我不明白为什么一些从internet粘贴的宏副本不会显示在“运行宏”菜单(Alt-F8)中 下面有2个宏,但只显示第二个宏。为什么?我该如何修复它 Sub Test1(ByVal Target As Hyperlink) '... End Sub Sub Test2() '... End Sub 如果子声明包含参数,它将不会显示在声明中。不能调用包含所述参数的宏。如果需要一个参数,可以将其取出,然后让用户输入值 Sub Test1()

我开始学习VBA,我不明白为什么一些从internet粘贴的宏副本不会显示在“运行宏”菜单(Alt-F8)中

下面有2个宏,但只显示第二个宏。为什么?我该如何修复它

Sub Test1(ByVal Target As Hyperlink)

    '...

End Sub

Sub Test2()

    '...

End Sub

如果
子声明包含参数,它将不会显示在声明中。

不能调用包含所述参数的宏。如果需要一个参数,可以将其取出,然后让用户输入值

Sub Test1()        
    Dim hyperLink As String
    hyperLink = InputBox("Please input hyperlink", "My Parameter")

    '...

End Sub

或者,如果超链接在您的文档中,则从您的文档中获取值。

这是我的5美分-如果您提供一个可选参数,您将能够调用子程序,即使它不会显示在您可以选择的子程序中

写入
aaaaTestMe
并按Run


带有参数的宏在宏列表中不可用,因为它们不能单独运行,而是由另一个宏通过传递所需参数来调用

您可以从任何excel对象调用一个甚至私有的宏,您可以指定一个宏,调用方式如下:

“我的工作簿”!”MyModule.MyProcedure“MyParameter1”


(请注意使用单引号:'around procedure name with parameter)

带有参数的宏在宏列表中不可用,因为它们不能单独运行,而是由另一个宏通过传递所需参数来调用。@sktneer如果您将其作为答案发布,我将批准它完成!很高兴您发现它很有用。@james我知道最方便的方法是从即时窗口调用它-按Ctrl+G并在那里写入
aaaaaatestme 31
Public Sub aaaaTestMe(Optional lngA As Long = 8)
    Debug.Print lngA
End Sub