宏未显示在运行宏菜单中

问题描述 投票:0回答:5

我开始学习VBA,我不明白为什么一些从互联网复制粘贴的宏没有出现在运行宏菜单(Alt-F8)中。

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

Sub Test1(ByVal Target As Hyperlink)

    '...

End Sub

Sub Test2()

    '...

End Sub

vba excel ms-word
5个回答
6
投票

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


4
投票

如果

Sub
声明包含参数,它将不会显示在那里。


1
投票

您无法调用具有您所描述的参数的宏。如果需要参数,可以将其取出,然后让用户输入值。

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

    '...

End Sub

或者,如果超链接位于您的文档中,请改为从文档中获取值。


1
投票

这是我的 5 美分 - 如果你给出一个 可选参数,你将能够调用子例程,即使它不会显示在你可以选择的参数中。

写入

aaaaTestMe
并按 运行

Public Sub aaaaTestMe(Optional lngA As Long = 8)
    Debug.Print lngA
End Sub

1
投票

您可以从任何可以分配宏的 Excel 对象中调用甚至私有宏,这样调用它:

'MyWorkbook'!'MyModule.MyProcedure "MyParameter1"'

(注意单引号:' 带有参数的过程名称)

© www.soinside.com 2019 - 2024. All rights reserved.