【问题标题】:Return Boolean from Function VBA从函数 VBA 返回布尔值
【发布时间】:2016-07-15 08:57:41
【问题描述】:

这看起来很奇怪,虽然代码看起来是正确的,但我总是得到一个 False 布尔值:

  • AgencyNameResult = CheckLenght(AgencyName, 2)
  • AgencyWebsiteResult = CheckLenght(AgencyWebsite, 5)。

你能找出错误吗?

Public Function CheckLenght(value As String, CharLimit As Integer) As Boolean

 Dim StringLength As Integer

 StringLength = Len(value)

 If StringLength > CharLimit Then
  CheckLength = True
 Else
  CheckLength = False
 End If

End Function

Private Sub btAddAgency_Click()

Dim AgencyName As String
Dim AgencyWebsite As String,
Dim AgencyNameResult As Boolean
Dim AgencyWebsiteResult As Boolean

Me.tbAgencyName.SetFocus
AgencyName = Me.tbAgencyName.Text
Me.tbAgencyWebsite.SetFocus
AgencyWebsite = Me.tbAgencyWebsite.Text

AgencyNameResult = CheckLenght(AgencyName, 2)
AgencyWebsiteResult = CheckLenght(AgencyWebsite, 5)

....

【问题讨论】:

  • 你有一个类型错误,你的函数是CheckLenght,你使用的参数是CheckLength
  • 天哪,我应该喝那杯咖啡。这很奇怪。感谢您的意见!
  • 这是一个很好的例子,为什么你应该总是使用Option Explicit :)
  • 我通常不使用 VBA 编程。感谢您向我展示此选项。它会在未来拯救我。

标签: ms-access vb6 vba


【解决方案1】:

你的函数被调用

Public Function CheckLenght

但是,您尝试将返回值分配给

  CheckLength = False

解决方案:

将你的函数重命名为

Public Function CheckLength

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-03-11
    • 2017-06-07
    • 2011-07-22
    • 1970-01-01
    • 1970-01-01
    • 2015-10-05
    • 2012-02-03
    • 1970-01-01
    相关资源
    最近更新 更多