gpt4 book ai didi

vba - 允许在一个打开的工作簿中使用 UDF,但使其在另一工作簿中不可见/不可用/不可访问

转载 作者:行者123 更新时间:2023-12-03 03:18:51 24 4
gpt4 key购买 nike

我的工作簿 (Book 1) 中有两个相当简单的 UDF,我也已使用函数向导注册了它们。一切都顺利进行。但是,当我打开两个不同的工作簿 - Book 1Book 2 - 我可以使用 Book 1 中的两个 UDF 之一第 2 册 中的 code>。 Book 2没有像Book 1那样在功能向导下注册它们,但功能仍然完整。

以下是每个工作簿当前显示方式的图片:

第一册                     第二册 both workbook function wizards

缺少创建加载项,有没有办法对此进行编码,以便 Book 1 中的 UDF 仅在 第 1 册中可见,尽管有其他可能打开的工作簿?

编辑:
因此,插件甚至可能是不可能的。但是,是否有另一种方法可以解决此问题,以便唯一可以使用这些功能的工作簿是 Book 1

<小时/>

注意:Option Private Module 不起作用,因为它会向用户隐藏两本书中的功能,但它确实会阻止 Book 2 被使用能够使用该功能。 我的最终目标是让它在Book 1中可见,但在Book 2中不可见且无法使用。

最佳答案

我不确定您是否可以做到这一点,以便该函数在不同的工作簿中根本不会出现。它们都在同一个 Application 下,因此它们是相关的。

您可以使用 Application.Caller ,它将包含触发 UDF 的 Range 对象:

 If Application.Caller.Parent.Parent.Name <> "Book1.xlsm" Then Exit Function

并且基本上不返回任何内容,导致该函数毫无值(value),如果您将其放在代码中较高的位置(作为函数的第一行),它将使用非常有限的资源。

关于vba - 允许在一个打开的工作簿中使用 UDF,但使其在另一工作簿中不可见/不可用/不可访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52104962/

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