vb6.0总显示无效的过程调用或参数?

vb6.0总显示无效的过程调用或参数?学校的作业写的代码总是出现这个问题求大佬帮我看看怎么回事... vb6.0总显示无效的过程调用或参数?学校的作业
写的代码总是出现这个问题
求大佬帮我看看怎么回事
展开
 我来答
K_BEAT
2018-04-11 · TA获得超过1245个赞
知道小有建树答主
回答量:879
采纳率:91%
帮助的人:400万
展开全部

错误原因解析:

    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

你可以尝试下,这两种方法的结果都是一致的。

pieryon
2018-04-10 · 知道合伙人数码行家
pieryon
知道合伙人数码行家
采纳数:14411 获赞数:166865
获取软件设计师高级职称 万达金融最佳创新奖

向TA提问 私信TA
展开全部
fontsize属性错误
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式