vb6.0总显示无效的过程调用或参数?
vb6.0总显示无效的过程调用或参数?学校的作业写的代码总是出现这个问题求大佬帮我看看怎么回事...
vb6.0总显示无效的过程调用或参数?学校的作业
写的代码总是出现这个问题
求大佬帮我看看怎么回事 展开
写的代码总是出现这个问题
求大佬帮我看看怎么回事 展开
2个回答
展开全部
错误原因解析:
C = InStr(1, A, B) ' 当文本框中什么空格也没有输入时 C = 0
V = InStr(C + 1, A, B) ' 此时从 C + 1 个位置开始往后查找空格时 V 依然 = 0
D = Mid$(A, 1, V - C - 1) ' V - C - 1 = 0 - 0 - 1 = -1
此时就会弹出你所说的错误:
点击调试按钮即可查看错误代码所在的行
鼠标选中 V - C - 1 就会看到结果返回 -1,而 Mid$ 函数是不允许截取长度为负数的,所以就报错了。
解决方法:
一、按照你的代码来
Private Sub Command1_Click()
Form1.Cls
Z = ""
D = ""
C = ""
X = ""
E = ""
V = ""
A = Text1.Text
B = " "
C = InStr(1, A, B)
If C > 0 Then
V = InStr(C + 1, A, B)
' /* 多个空格. */
If (V > 0) And (V - C >= 1) Then
D = Mid$(A, 1, V - C - 1)
Z = D
E = Mid$(A, C + 1)
Do
C = InStr(1, E, B)
If C <> 0 Then
D = Mid$(E, 1, C - 1)
E = Mid$(E, C + 1)
Z = Z & vbCrLf & D
End If
Loop Until C = 0
' /* 单个空格. */
Else
Z = Mid$(A, 1, C - 1)
E = Mid$(A, C + 1)
End If
X = Z & vbCrLf & E
Print X
End If
End Sub
运行效果:
二、仅需一行代码实现
Private Sub Command1_Click()
Print Replace(Text1.Text, " ", vbCrLf)
End Sub
你可以尝试下,这两种方法的结果都是一致的。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询