2013-11-26 61 views

回答

2

声明潜艇作为Private,使他们不至用户可见。然后,如果你想打电话给他们,用Application.Run

例如

模块1

Option Explicit 

Sub Sample1() 
    Application.Run "Module2.Sample2" 
End Sub 

单词数

Option Explicit 

Private Sub Sample2() 
    MsgBox "Hello World" 
End Sub 
+0

Thanks :)如果我的宏收到一个参数它是: Application.Run“Module2.Sample2”,arg? – user429400

+0

'Application.Run“Module2.Sample2”,arg1,agr2,arg3 ...' –

0

保存utils的模块作为一个Excel加载项,而不是工作簿。确保文件名以.xla或.xlam结尾。通过这种方式,只有Excel中的其他vba代码插件和工作簿可以看到它们,并且它们对用户是不可见的。

或者,如果只有一个Sub要隐藏或保存为.xla不是一个选项。你可以给你的子可选参数

Option Explicit 

public Sub Sample1(Optional x as string = "") 
    ' Code goes here, just as before. 
End Sub 

,那么它不会在运行宏对话框显示,即使是公众。

相关问题