Ski*_*zoa 7 excel vba excel-2007 user-defined-functions
我正在编写一个VBA函数,我希望在同一文档中的其他VBA模块中公开可用,但是我不希望它作为UDF(用户定义的函数)提供.
如果我使用公共访问修饰符,但我的函数也可以作为UDF公式提供,可以从工作簿中的单元格调用.我不想要这个.
是否有访问修饰符或其他方式可以帮助我获得这种"仅VBA"行为?
亲切的问候
如果Option Private Module在功能所在的模块中使用,则可以将该功能声明为PublicVBA项目中的任何其他模块并在其中使用,但其他应用程序或项目(包括Excel本身)将无法访问该功能。
如果在Excel中使用,这将返回#VALUE错误.
Function VBAOnly() As Variant
If TypeName(Application.Caller) <> "Range" Then
VBAOnly = 1 'or some other return value
Else
VBAOnly = CVErr(xlErrValue)
End If
End Function
Run Code Online (Sandbox Code Playgroud)
Sea*_*anC -1
传递一个参数,仅当给定“magic*”值时才允许该函数运行。
#NAME!示例 -除非您知道密钥是什么,否则这将给出错误:
Function VBAOnly(key As Long)
If key <> 12345 Then
VBAOnly = CVErr(xlErrName)
Exit Function
End If
VBAOnly = True
End Function
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2247 次 |
| 最近记录: |