五子良将vs八虎骑:vb中的Mid函数问题

来源:百度文库 编辑:杭州交通信息网 时间:2024/04/28 17:12:58
请问对于Mid函数,如果是这样写:
dim i,j,m as long
i=InStr(strString, "来电号码:") + 24
j = InStr(i, strString, "用户姓名:") - 21
strName1 = Mid(strString, i, j-i)运行时就出错,
如果这样写:m=8
strName1 = Mid(strString, i, m)就可以运行,为什么呢?我希望第一种方式可以成功,我很着急,谢谢啦!
我这里使用四楼的代码,还是说strName1 = Mid(strString, j, Len(strString) - j + 1) 是"无效的过程调用和函数",而且鼠标放到Len(strString) - j + 1,j都是表示是0,strString是空,这是为什么呢?

j-i 为负数了

InStr是返回0,和1吧,似乎这样对进取有问题。。。

j-i 为负数了,I的值>=24了。这个程序这样写J很容易就是负数,负数再减去24,不报错才怪。

一楼和三楼说的正确,j-i 为负数,下面给出代码供参考:
Option Explicit
Dim strName1 As String
Dim i, j, m As Long
Dim strString As String

Private Sub Command3_Click()
i = InStr(strString, "来电号码:")
j = InStr(i, strString, "用户姓名:")
Text2 = i
Text3 = j
strName1 = Mid(strString, j, Len(strString) - j + 1)
Text1 = strName1
End Sub

Private Sub Form_Load()
strString = "来电号码:008102113519781235用户姓名:ABCkkk"
End Sub

楼主你对strString赋值没有?