【问题标题】:i need to fix this line it says object required: If FullName.Contains(",") Then我需要修复这条线,它说需要对象:如果 FullName.Contains(",") 然后
【发布时间】:2016-01-16 09:36:59
【问题描述】:

我需要修复这条说需要对象的行: If FullName.Contains(",") 那么

这是我的代码:

Private Sub retrieveinput_Click()
     FullName = inputText.Text
     Dim NameArray() As String

     If FullName.Contains(",") Then
         NameArray = Split(FullName, ",")
         First = NameArray(1)
         Last = NameArray(0)
     Else
         NameArray = Split(FullName)
         First = NameArray(0)
         Last = NameArray(1)
     End If

     TextBox2.Text = First
     TextBox3.Text = Last

End Sub

【问题讨论】:

  • 好的,感谢您的编辑,但我仍然在同一行的 vba excel 中收到错误:If FullName.Contains(",") Then
  • 这是 VBA 还是 VB.NET?

标签: vba


【解决方案1】:

你不能这样做:

Dim foo As String
foo = "foobar"

If foo.Contains("bar") Then
...

这不是 VB.NET,字符串不是 VBA 中的对象,因此没有可调用的 Contains 方法。 VBA 的做法是使用InStr 函数,如下所示:

If InStr(FullName, ",") > 0 Then

看到这个帖子:Check if a string contains another string

你也可以像这样让自己成为一个辅助函数:

Public Function Contains(ByVal string_source As String, ByVal find_text As String, Optional ByVal caseSensitive As Boolean = False) As Boolean

    Dim compareMethod As VbCompareMethod

    If caseSensitive Then
        compareMethod = vbBinaryCompare
    Else
        compareMethod = vbTextCompare
    End If

    Contains = (InStr(1, string_source, find_text, compareMethod) <> 0)

End Function

然后你可以这样做

If Contains(FullName, ",") Then

【讨论】:

    【解决方案2】:

    诸如“需要对象”之类的错误通常意味着您错过了某处的作业。这种情况下如果出错就行了

    If FullName.Contains(",") Then
    

    那么 FullName 为 null 或尚未定义。这可能是由于以下原因:

    1. inputText 不是变量或控件
    2. Text 不是 inputText 的属性或方法
    3. inputText.Text 值为空

    在这些情况下首先要检查的是您尝试访问的变量是否具有值(即非空)

    【讨论】:

    • 在我做出 if 语句之前,它适用于 else 语句。我把我的名字放到文本中,点击我的按钮,它把名字分成另外两个文本框,但是当使用逗号时它不起作用
    • 在出现错误的行上放置一个断点 - 然后检查 inputText.Text 的值。如前所述,确保 Dim FullName 在您的方法中使用之前(或在范围之外)。
    • 我真的对此一无所知,它被扔给我而且我不是 CS 专业的
    • 点击行左侧的空白处(应该出现一个红色圆圈)或选择行并按F9,或右键单击行并选择断点 - 有很多方法可以做到这一点取决于您使用的环境。然后在调试模式下运行,程序会在断点处暂停执行。
    • 除了在调试模式下运行之外还知道吗?我在它是红色的时候正常运行它,没有任何不同发生
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-23
    • 1970-01-01
    • 2012-10-10
    • 2014-08-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多