VBA Excel中的用户定义函数不可访问?
Posted
技术标签:
【中文标题】VBA Excel中的用户定义函数不可访问?【英文标题】:User-defined Function in VBA Excel is Not Accessible? 【发布时间】:2018-06-26 09:25:13 【问题描述】:我在我的 VBE 中的一个模块中有这个功能,但是当我尝试在我的用户窗体中访问它时,我收到一个错误,因为它无法被 VBE 检测到:
这是Col_Letter
函数:
Function Col_Letter(lngCol As Long) As String
Dim vArr
vArr = Split(Cells(1, lngCol).Address(True, False), "$")
Col_Letter = vArr(0)
End Function
我也尝试添加Public
:
Public Function Col_Letter(lngCol As Long) As String
Dim vArr
vArr = Split(Cells(1, lngCol).Address(True, False), "$")
Col_Letter = vArr(0)
End Function
【问题讨论】:
你的模块也被命名为Col_Letter
。更改模块的名称,它会工作。
我总是在模块名称前加上'm',类模块加上'cls'。现在我知道为什么了 8-)
【参考方案1】:
使用与公共函数同名的模块命名是一个非常糟糕的主意。更改Col_Letter
模块的名称或函数的名称。
【讨论】:
对。我一直很困惑为什么它不起作用。谢谢 @MarcSantos - 欢迎您。制作函数public
是很好的第一步。
@MarcSantos 我发现有帮助的是对对象和变量使用类型声明前缀(例如,lng_Users
用于 Long
变量,frm_Users
用于用户窗体,mod_Users
用于一个模块等) - 当您在以后查看代码以弄清楚所有内容是什么/做什么时,它也会变得更加容易
@Chronocidal - 这是 *** 的创建者的一篇很棒的文章,它 100% 反对这种做法。阅读它,它可能会永远改变你的编码风格 - joelonsoftware.com/2005/05/11/making-wrong-code-look-wrong以上是关于VBA Excel中的用户定义函数不可访问?的主要内容,如果未能解决你的问题,请参考以下文章