我想创建一个包含大量Lamba函数的Excel文件并将其共享给其他人。我不想将我的lambda函数暴露给该Excel文件的用户。对于名称管理器中的任何其他名称(命名范围),我可以使用vba将其隐藏在名称管理器中,但我无法隐藏lambda函数。
lmvvr0a81#
这种说法是不正确的:* 对于名称管理器中的任何其他名称(命名范围),我可以使用vba将其隐藏在名称管理器中,但我无法隐藏lambda函数。您可以使用VBA隐藏命名Lambda函数。请按照以下步骤操作:1.创建新Excel工作表1.在下面的例子中,我使用了一个命名范围myDoubleFunction,并给它一个公式=LAMBDA(aNumber,aNumber*2)。
myDoubleFunction
=LAMBDA(aNumber,aNumber*2)
1.通过在单元格中输入名称来确认名称有效
1.向工作簿中添加并运行以下宏:
Sub hideLambda() Const nameToHide = "myDoubleFunction" Dim n As Name For Each n In ThisWorkbook.Names If InStr(1, n.Name, nameToHide, vbTextCompare) > 0 Then n.Visible = False Exit For End If Next n End Sub
命名区域不会显示在命名区域列表中,如果您在单元格中输入名称,命名区域也不会自动填充。计算将继续进行,如下所示:
需要强调的是,这很难做到安全,也不应被视为一种保护用户不被看到公式的安全方法。即使您保护了工作簿的某些部分,取消隐藏公式的过程也同样简单。
1条答案
按热度按时间lmvvr0a81#
这种说法是不正确的:* 对于名称管理器中的任何其他名称(命名范围),我可以使用vba将其隐藏在名称管理器中,但我无法隐藏lambda函数。
您可以使用VBA隐藏命名Lambda函数。请按照以下步骤操作:
1.创建新Excel工作表
1.在下面的例子中,我使用了一个命名范围
myDoubleFunction
,并给它一个公式=LAMBDA(aNumber,aNumber*2)
。1.通过在单元格中输入名称来确认名称有效
1.向工作簿中添加并运行以下宏
:
命名区域不会显示在命名区域列表中,如果您在单元格中输入名称,命名区域也不会自动填充。计算将继续进行,如下所示:
需要强调的是,这很难做到安全,也不应被视为一种保护用户不被看到公式的安全方法。即使您保护了工作簿的某些部分,取消隐藏公式的过程也同样简单。