gpt4 book ai didi

vba - 在另一个模块中声明一个子/函数可以被其他模块访问,但不能被用户访问

转载 作者:行者123 更新时间:2023-12-03 00:20:54 27 4
gpt4 key购买 nike

我有一个模块ModuleA,其中包含用户将在电子表格上使用的Public函数:

Public Function UserCanSeeThis() As String
UserCanSeeThis = "Hello, " & UserCannotSeeThisButModuleACan() & " user"
End Function

我有一个模块 ModuleB,其中包含我想在 ModuleA 中使用的函数,但我不希望用户在可用函数列表中看到将 = 写入单元格或读取公式字典时:

Function UserCannotSeeThisButModuleACan() As String
UserCannotSeeThisButModuleACan = "my dear"
End Function

我应该如何在ModuleB中声明该函数,以便ModuleA可以看到它,但用户看不到?

p.s. 我搜索了该网站,只找到了 Sub 的“解决方案”,我可以将 Sub 声明为 Private,然后使用 Application.Run "mySub" 从其他模块调用它。但我希望 VBA 中有一些更成熟的“友谊”概念。

最佳答案

ModuleB顶部指定Option Private Module;公共(public)成员不会(明显)暴露给用户,但可以从 VBA 项目内的任何位置轻松访问。

你的Private+Application.Run hack是..好吧,一个hack。不要这样做 - 创建/保留公共(public)成员Public,并使用Option Private Module从宏列表中隐藏该模块。

关于vba - 在另一个模块中声明一个子/函数可以被其他模块访问,但不能被用户访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44686224/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com