我开始学习VBA,我不明白为什么一些从互联网复制粘贴的宏没有出现在运行宏菜单(Alt-F8)中。
下面有2个宏,但只显示了第二个。为什么?我该如何解决它?
Sub Test1(ByVal Target As Hyperlink)
'...
End Sub
Sub Test2()
'...
End Sub
带参数的宏在宏列表中不可用,因为它们不能单独运行,而是由另一个宏通过传递所需的参数来调用。
如果
Sub
声明包含参数,它将不会显示在那里。
您无法调用具有您所描述的参数的宏。如果需要参数,可以将其取出,然后让用户输入值。
Sub Test1()
Dim hyperLink As String
hyperLink = InputBox("Please input hyperlink", "My Parameter")
'...
End Sub
或者,如果超链接位于您的文档中,请改为从文档中获取值。
这是我的 5 美分 - 如果你给出一个 可选参数,你将能够调用子例程,即使它不会显示在你可以选择的参数中。
写入
aaaaTestMe
并按 运行。
Public Sub aaaaTestMe(Optional lngA As Long = 8)
Debug.Print lngA
End Sub
您可以从任何可以分配宏的 Excel 对象中调用甚至私有宏,这样调用它:
'MyWorkbook'!'MyModule.MyProcedure "MyParameter1"'
(注意单引号:' 带有参数的过程名称)