VB问题instr和mid函数问题

在立即窗口中,print instr(2,"abcde","de") 结果是4,为什么啊。按理来说代码我标明了从第2个b开始截取应该是3啊。 另外mid函数和mid语句有什么不同。举例说明下。 谢谢了

先介绍下Instr函数和Mid函数(手机可能显示不正常,建议用电脑查看...):
InStr 函数返回 Variant (Long),指定一字符串在另一字符串中最先出现的位置。语法 InStr([start, ]string1, string2[, compare])InStr 函数的语法具有下面的参数:部分说明start可选参数。为数值表达式,设置每次搜索的起点。如果省略,将从第一个字符的位置开始。如果 start 包含 Null,将发生错误。如果指定了 compare 参数,则一定要有 start 参数。string1必要参数。接受搜索的字符串表达式。string2必要参数。被搜索的字符串表达式。Compare可选参数。指定字符串比较。如果 compare 是 Null,将发生错误。如果省略 compare,Option Compare 的设置将决定比较的类型。
设置 compare 参数设置为:常数值描述vbUseCompareOption-1使用Option Compare 语句设置执行一个比较。vbBinaryCompare0执行一个二进制比较。vbTextCompare1执行一个按照原文的比较。vbDatabaseCompare2仅适用于Microsoft Access,执行一个基于数据库中信息的比较。
返回值如果InStr返回string1 为零长度0string1 为 NullNullstring2 为零长度Startstring2 为 NullNullstring2 找不到0在 string1 中找到string2 找到的位置start > string20
说明InStrB 函数作用于包含在字符串中的字节数据。所以 InStrB 返回的是字节位置,而不是字符位置。InStr 函数示例本示例使用 InStr 函数来查找某字符串在另一个字符串中首次出现的位置。Dim SearchString, SearchChar, MyPosSearchString ="XXpXXpXXPXXP" ' 被搜索的字符串。SearchChar = "P" ' 要查找字符串 "P"。' 从第四个字符开始,以文本比较的方式找起。返回值为 6(小写 p)。' 小写 p 和大写 P 在文本比较下是一样的。MyPos = Instr(4, SearchString, SearchChar, 1) ' 从第一个字符开使,以二进制比较的方式找起。返回值为 9(大写 P)。' 小写 p 和大写 P 在二进制比较下是不一样的。MyPos = Instr(1, SearchString, SearchChar, 0)' 缺省的比对方式为二进制比较(最后一个参数可省略)。MyPos = Instr(SearchString, SearchChar) ' 返回 9。MyPos = Instr(1, SearchString, "W") ' 返回 0。---------------------------------------------------------------------------------------------Mid 函数返回 Variant (String),其中包含字符串中指定数量的字符。语法Mid(string, start[, length])Mid 函数的语法具有下面的命名参数:部分说明string必要参数。字符串表达式,从中返回字符。如果 string 包含 Null,将返回 Null。start必要参数。为 Long。string 中被取出部分的字符位置。如果 start 超过 string 的字符数,Mid 返回零长度字符串 ("")。length可选参数;为 Variant (Long)。要返回的字符数。如果省略或 length 超过文本的字符数(包括 start 处的字符),将返回字符串中从 start 到尾端的所有字符。
说明欲知 string 的字符数,可用 Len 函数。注意</b> MidB 函数作用于字符串中包含的字节数据,如同在双字节字符集(DBCS)语言中一样。因此其参数指定的是字节数,而不是字符数。Mid 函数示例本示例使用 Mid 语句来得到某个字符串中的几个字符。Dim MyString, FirstWord, LastWord, MidWordsMyString = "Mid Function Demo" 建立一个字符串。FirstWord = Mid(MyString, 1, 3) ' 返回 "Mid"。LastWord = Mid(MyString, 14, 4) ' 返回 "Demo"。MidWords = Mid(MyString, 5) ' 返回 "Funcion Demo"。
---------------------------------------------------------------------------------------------------------------------------接着是print instr(2,"abcde","de") 由上可知instr(2,"abcde","de") 会从"abcde"的第二个字符串"b"开始寻找,"de"位于"abcde"的第四位,所以instr(2,"abcde","de")返回4,print instr(2,"abcde","de") 输出4.
呃,明白了么?
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-07-06
instr(1,"abcde","d")instr(1,"abcde","de")instr(2,"abcde","d")instr(2,"abcde","de")instr(3,"abcde","d")instr(3,"abcde","de") 的结果都是 4,因为 "d" 是在 "abcde" 的第四个位置找到的,"de" 也是。 mid 关键字在VB中比较特别,可以是mid函数,也可以是mid语句本回答被网友采纳
第2个回答  2013-07-06
instr(interge,string1,string2),string1的每个字符的位置是固定的,不受其他影响,而interge只是用来从string1的第几个字符开始查起,而不是将第几个字符的序号置1,此函数反回的是整形数据,mid(interge1,string,interge2)此函数是返回string中从interge1开始的interge2个字符,返回的是字符串

VB问题instr和mid函数问题
先介绍下Instr函数和Mid函数(手机可能显示不正常,建议用电脑查看...):InStr 函数返回 Variant (Long),指定一字符串在另一字符串中最先出现的位置。语法 InStr([start, ]string1, string2[, compare])InStr 函数的语法具有下面的参数:部分说明start可选参数。为数值表达式,设置每次搜索的起点。如果...

vb 如何用MID函数处理如下问题
Instr(1,"中国人民","人民"),返回3 Instr(3,"中国人民","人民"),返回3 Instr("中国人民","人民"),返回3,n = 1的时候,可以省略。Instr(1,"中国人民","南京"),返回0 解决你的问题,要使用到这个函数!

Vb中的mid函数和instr函数介绍!举例说明,谢谢!麻烦详细点,呵呵...
InStr([start, ]string1, string2[, compare])函数可以找到指定的字符串在另一字符串中最先出现的位置如 InStr(1,"abcdefg", "de") 刚函数返回 4 <\/SPAN>mid(s,start,len)它的作用是在s字符串中的start位置开始截取长度为len的字符串 如果len省略,则默认截取长度为start到s字符串的尾部 ...

vb中的Mid函数问题
mid 是取中间字符串的函数,格式是:mid$(a$,m,n),意思是从a$的第m位起,取n个字符的字符串。你这个题里,从第0个开始取值,初始值应该是1,循环体应该从1开始。

VB的Mid函数调用问题
mid(字符串A,开始找的位值(数据B),找几位(数据C))你的函数是这样的 比如:mid("ASDFGwww",2,3) 就是从字符串第2位开始,取3个字符,结果是DFG 另InStr 函数来查找某字符串在另一个字符串中首次出现的位置 形式:InStr([start, ]string1, string2[, compare])instr(1,"KL-K-KP...

求组vba中 提取 字典(Dictionary)内容的一些问题
1、用 INSTR( key,"【") 获得 左右书名号在key中的位置, 然后用MID函数 截取【XXX】2、sheet2.[a1].reszie(dic.count)=application.transpose(dic.keys)3、For i = 1 To dic.count sheet2.Hyperlinks.Add Anchor:=Cells(i, 1), Address:= dic(i), TextToDisplay:=Cells(i, 1)....

...串在s1里出现的次数。分别用Mid函数和Instr函数
Dim num As Long Dim p As Long s1 = "abcaca"s2 = "a"Do While True p = InStr(1, s1, s2)If p = 0 Then Exit Do Else num = num + 1 s1 = Mid(s1, p + 1)End If Loop MsgBox "共出现" & num & "次"

vb6.0总显示无效的过程调用或参数?
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)

求VB字符串处理函数。
VB 字符串处理函数集 1. Mid(字符串,从第几个开始,长度) 在[字符串]中[从第几个开始]取出[长度个字符串]。例:Mid("小欣无敌",1,3) 则返回 "小欣无"。2. Instr(从第几个开始,字符串1,字符串2) 从规定的位置开始查找,返回字符串2在字符串1中的位置。例:Instr(1,"小欣无敌","...

关于VB mid出现的问题
语法 Mid(string, start[, length])Mid 函数的语法具有下面的命名参数:部分 说明 string 必要参数。字符串表达式,从中返回字符。start 必要参数。为 Long。string 中被取出部分的字符位置。如果 start 超过 string 的字符数,Mid 返回零长度字符串 ("")。length 可选参数;为 Variant (Long)。要...

相似回答