我想将一些我的util subs移动到另一个模块中。问题是,如果我这样做,我必须将他们的访问修饰符设置为“公共”,然后当他按下“宏”按钮时,用户可以看到它们。
我该怎么办? 如何使用Utils模块而不让用户看到它?
谢谢, 李
答案 0 :(得分: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
答案 1 :(得分:0)
将您的utils模块保存为excel Addin,而不是工作簿。确保文件名以.xla或.xlam结尾。这样,只有excel插件和工作簿中的其他vba代码才能看到它们,并且它们对用户是不可见的。
或者,如果只有一个Sub要隐藏或保存,则.xla不是一个选项。您可以为Sub提供一个可选参数
Option Explicit
public Sub Sample1(Optional x as string = "")
' Code goes here, just as before.
End Sub
然后它将不会显示在运行宏对话框中,即使它是公开的。