我需要修复这一行,它说需要对象:如果FullName.Contains(",")那么

时间:2015-10-17 19:29:34

标签: vba

我需要修复此行,它说对象需要: 如果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

2 个答案:

答案 0 :(得分:2)

你不能这样做:

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

答案 1 :(得分:-1)

诸如&#39;对象所需的错误&#39;通常意味着你错过了任务。在这种情况下,如果错误在行

If FullName.Contains(",") Then

然后FullName为null或尚未定义。这可能是因为以下原因:

  1. inputText不是变量或控件
  2. Text不是inputText的属性或方法
  3. inputText.Text值为null
  4. 在这些情况下检查的第一件事是您尝试访问顶层的变量是否具有值(即非空)