Vba 我需要修正这行,它说需要对象:如果FullName.Contains(";,";),那么
我需要修正这行,它说需要对象: 如果FullName.包含(“,”),则 这是我的代码:Vba 我需要修正这行,它说需要对象:如果FullName.Contains(";,";),那么,vba,Vba,我需要修正这行,它说需要对象: 如果FullName.包含(“,”),则 这是我的代码: Private Sub retrieveinput_Click() FullName = inputText.Text Dim NameArray() As String If FullName.Contains(",") Then NameArray = Split(FullName, ",") First = NameArray(1)
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
“需要对象”之类的错误通常意味着您错过了某个作业。在这种情况下,如果错误在线路上
If FullName.Contains(",") Then
则FullName为null或尚未定义。这可能是由于以下原因:
Dim foo As String
foo = "foobar"
If foo.Contains("bar") Then
...
这不是VB.NET,字符串不是VBA中的对象,因此没有要调用的Contains
方法。VBA执行此操作的方法是使用InStr
函数,如下所示:
If InStr(FullName, ",") > 0 Then
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 InStr(FullName, ",") > 0 Then
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
好的,谢谢你的编辑,但我仍然在vba excel中的同一行中得到错误:If FullName.Contains(“,”),那么这是vba还是VB.NET?在我生成If语句之前,它对else语句有效。我将我的名字输入文本,点击我的按钮,它将名字分割成另外两个文本框,但当使用逗号时,它不会在出现错误的行上设置断点-然后检查inputText.text的值。如前所述,请确保Dim FullName在您的方法中(或在范围外)使用之前已存在。我对此一无所知,它是向我抛出的,并且不是线条左侧边距中的CS majorClick(应显示红色圆圈),或者选择线条并按F9,或者右键单击该行并选择breakpoint—根据您使用的环境,有许多方法可以实现这一点。然后在调试模式下运行它,程序将在断点处暂停执行。除了在调试模式下运行之外,还得到了吗?当它是红色的时候,我正常地运行它,没有什么不同的事情发生