我想将一些我的util subs移动到不同的模块中。问题是,如果我这样做,我必须将其访问修饰符设置为“公开”,然后当他按下“宏”按钮时,它们对用户可见。vba excel写入子对两个模块都可访问,但用户不可见
我该怎么办? 如何使用Utils模块而不使其子对用户可见?
感谢, 李
我想将一些我的util subs移动到不同的模块中。问题是,如果我这样做,我必须将其访问修饰符设置为“公开”,然后当他按下“宏”按钮时,它们对用户可见。vba excel写入子对两个模块都可访问,但用户不可见
我该怎么办? 如何使用Utils模块而不使其子对用户可见?
感谢, 李
声明潜艇作为Private
,使他们不至用户可见。然后,如果你想打电话给他们,用Application.Run
例如
模块1
Option Explicit
Sub Sample1()
Application.Run "Module2.Sample2"
End Sub
单词数
Option Explicit
Private Sub Sample2()
MsgBox "Hello World"
End Sub
保存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
,那么它不会在运行宏对话框显示,即使是公众。
Thanks :)如果我的宏收到一个参数它是: Application.Run“Module2.Sample2”,arg? – user429400
'Application.Run“Module2.Sample2”,arg1,agr2,arg3 ...' –