创build函数,但仅用于VBA环境(不在工作簿公式中)

这对我来说是新的 – 我创build了一个函数,用于通过VBA更新SQL Server表。 它需要一个单元格范围,并返回一个Long有多lesslogging受到影响。

所以,我希望这个函数可以在我的工作簿中用于VBA,但是不希望它在Excel(VBA环境之外)中显示为可用的公式。

我确定我以前做过这个,但是不记得如何从Excel中隐藏我的函数,所以只能用在VBA中。

我怎样才能做到这一点?

将它移动到它自己的模块(.bas)中,并在顶部粘贴Option Private Module 。 完成; Excel不会再看到它了,但是VBA(和COM加载项也可以看到它,所以我认为引用的VBA项目也可以看到它)。

我只是使用一个子并传递参数ByRef 。 使用整数/长整型variables,可以通过几种不同的方法来实现:

看例子:

 Sub Main() Dim i as Long i = 1 bar (i) 'Variable is passed ByVal because parens FORCE an evaluation, you aren't passing "i", you're passing the expression "(i)". Debug.Print i bar i 'Variable is passed ByRef even without explicitly doing so Debug.Print i anotherFunction i 'Variable is passed ByRef, same as above Debug.Print "i: " & CStr(i) anotherFunction (i) 'Variable is passed ByVal because parens FORCE an evaluation Call anotherFunction(i) 'Variable is passed byRef End Sub Sub bar(val As Long) Dim j For j = 1 To 10 val = val + 1 Debug.Print "j: " & CStr(val) Next End Sub Sub anotherFunction(ByRef val as Long) Dim j For j = 1 To 10 val = val + 1 Debug.Print "j: " & CStr(val) Next End Sub