VB 从右边截取字符串

作者&投稿:辟潘 (若有异议请与网页底部的电邮联系)
vb 中如何从字符串的右端第n个位置开始截取指定长度的字符串?~

可以用mid()函数实现
mid(x,n1,n2) 从字符串x左起第n1个字符开始连续取其中的n2个字符
如: a=mid("中国12亿",2,3) 则a为"国12"
以下摘自msdn
Dim x, a,b, c
x = "Mid Function Demo" '建立一个字符串
a = Mid(x, 1, 3) ' 返回 "Mid"
b = Mid(x, 14, 4) ' 返回 "Demo"
c = Mid(x, 5) ' 返回 "Funcion Demo"

VB可使用Split函数取出问帖所要的斜杠后右侧字符串。
Split函数:
描述
返回一个下标从零开始的一维数组,它包含指定数目的子字符串。

实现代码如下:
Private Sub Command1_Click() Dim strsj As String Dim i As Long Dim rightStr strsj = " rightStr = Split(strsj, "/") i = UBound(rightStr) Debug.Print rightStr(i)End Sub

VB 从右边截取字符串可以使用Right函数:

Private Sub Command1_Click()

  s = "1234567890"

  s1 = Right(s, 4)

  Print s; "的右边4个字符是"; s1

End Sub



InStr 函数,返回指定字符在字符串中出现的第一个位置
InStrL 函数,返回指定字符在字符串中出现的最后一个位置,注:该函数自己写的,具体如下:
'取得指定字符串在原字符串中的最后的位置

Public Function InStrL(inString As String, srchString As String) As Integer

Dim iLastPos As Integer

If Len(srchString) Then

Dim iCurPos As Integer
Do
iLastPos = iCurPos
iCurPos = InStr(iCurPos + 1, inString, srchString, vbTextCompare)

Loop Until iCurPos = 0
End If

InStrL = iLastPos

End Function
然后使用Mid函数

比如wwwwwwwrrrfffffffffffffffffffeee 要截取fffffffffffffffffff
StrTest="wwwwwwwrrrfffffffffffffffffffeee"
Mid(StrTest,InStr(StrTest,"f"),InStrL(StrTest,"f")-InStr(StrTest,"f")+1)

这样就可以得到你要的字符了

Dim str, index As String str = ".200905/2009/1232131231mjch[2009]59fj.zip" index = InStrRev(str, "/") + 1 MsgBox Mid(str, index) 注: 返回某字符串在另一个字符串中出现的从结尾计起的位置。 InStrRev(string1, string2[, start[, compare]]) 参数 string1 必选项。接受搜索的字符串表达式。 string2 必选项。被搜索的字符串表达式。 Start 可选项。数值表达式,用于设置每次搜索的开始位置。如果省略,则默认值为 -1,表示从最后一个字符的位置开始搜索。如果 start 包含 Null,则出现错误 compare 可选项。在计算子字符串时,指示要使用的比较类型的数值。如果省略,将执行二进制比较。有关数值,请参阅“设置”部分。

满意请采纳

Private Sub Command1_Click()
'如果是数字有很多种方法可以实现
a = "88888888.999"
b = Left(a, InStr(a, ".") - 1) '第一种方法
c = Split(a, ".")(0) '第二种方法
d = CStr(Int(a)) '第三种方法
Print b
Print c
Print d

'你说的如果是字符串
a = "wwwwwwwrrr"
b = "fffffffffffffffffffeee"
a1 = Left(a, 1)
b1 = Left(b, 1)
c = ""
d = ""
For i = 1 To Len(a)
If Mid(a, i, 1) = a1 Then
c = c & Mid(a, i, 1)
Else
Exit For
End If
Next

For i = 1 To Len(b)
If Mid(b, i, 1) = b1 Then
d = d & Mid(b, i, 1)
Else
Exit For
End If
Next

Print c, d
End Sub

Function 取整(byval 数字) as Integer
取整=cstr(fix(val(数字)))
End Function

dim a,b
a=取整(88888888.999)
b=取整(7777777777777.666)

fix介绍:
1.vb
返回一个数的整数部分
Return the integer portion of a number.
2.c++
ByVal Number As { Double | Integer | Long | Object | Short | Single | Decimal }) _
As { Double | Integer | Long | Object | Short | Single | Decimal }
Public Shared Function Fix( _
ByVal Number As { Double | Integer | Long | Object | Short | Single | Decimal }) _
As { Double | Integer | Long | Object | Short | Single | Decimal }


非国家标准行政区划只宜作为统计汇总用地址代码19745969433: VB 如何截取字符串? -
晨峡六味: left(要截取的字符串,从左数要截取的字符个数) right(要截取的字符串,从右数要截取的字符个数) mid(要截取的字符串,从左开始截取的位置,截取的字符个数) 希望这三个函数能帮上你.

非国家标准行政区划只宜作为统计汇总用地址代码19745969433: vb 如何截取字符串?? -
晨峡六味: x字符串变量,用mid函数就可以实现了 a=mid(x,1,3) b=mid(x,5,3)

非国家标准行政区划只宜作为统计汇总用地址代码19745969433: VB如何截取字符串 -
晨峡六味: VB6里 right的函数是取一段字符串的右边几个字符 比如 dim a as string dim b as string a="12345678" b=right(a,4) 那么b的值是5678

非国家标准行政区划只宜作为统计汇总用地址代码19745969433: vb如何分别截取指定字符之前和之后的内容? -
晨峡六味: 方法和详细的操作步骤如下: 1、第一步,删除字符串C两端的空格,见下图,转到下面的步骤. 2、第二步,完成上述步骤后,截取C的最左边的n个字符,见下图,转到下面的步骤. 3、第三步,完成上述步骤后,截取C的最右侧n个字...

非国家标准行政区划只宜作为统计汇总用地址代码19745969433: VB截取字符串代码
晨峡六味: Private Sub Form_Activate() Dim s As String s = "C:\Program Files\TTPlayer\TTPlayer.exe" Print Right(s, Len(s) - InStrRev(s, "\") + 1) End Sub

非国家标准行政区划只宜作为统计汇总用地址代码19745969433: VB截取指定字符串 -
晨峡六味: 建一个Command1.代码如下.==================== Private Sub Command1_Click() Dim s As String s = " "1111:2233445566 Dim i As Integer i = InStr(1, s, "1111:") s = Mid(s, i + 5, InStr(i, s, "") - i - 5) MsgBox s End Sub

非国家标准行政区划只宜作为统计汇总用地址代码19745969433: vb 截取一段字符串 -
晨峡六味: 没有VB,在Excel的VBA中调试,效果一样: Sub aaa() ss = "strCopy(strFind(""Dfjdlsi*@#kkkslfjirjls51&fsqf""))alksdfjk""11111111""sdfsdf" p1 = InStr(ss, """") Do While p1 > 0p2 = InStr(p1 + 1, ss, """")If p2 = 0 Then Exit ...

非国家标准行政区划只宜作为统计汇总用地址代码19745969433: vb截取字符串,高手进
晨峡六味: 用函数截取再连接字符串就可以了 left("aaaabbbbcccc",4)+right("aaaabbbbcccc",4)="aaaacccc" left("aaaabbbbcccc",4)是从左边取4个字符, right("aaaabbbbcccc",4)是从右边取4个字符, 再用加号连接起来就可以了

非国家标准行政区划只宜作为统计汇总用地址代码19745969433: vb中如何进行字符串操作? -
晨峡六味: 这个要用到字符串处理函数,如Len、left、right、mid、instr、instrrev、replace等等,发现一楼也说了很多,下面我用例子讲几个函数的用法,Private Sub Command1_Click() Dim temp As String '源字符串 Dim temp2 As String '要插入的字符串 ...

非国家标准行政区划只宜作为统计汇总用地址代码19745969433: VB用循环语句截取字符串 -
晨峡六味: Private Sub Command1_Click() Dim i As Integer, S As String S = "123 gi 4759278 kfdjghwi ywrei74983" i = InStr(S, " ") Do While i > 0 Print Left(S, i - 1) S = Mid(S, i + 1) i = InStr(S, " ") Loop End Sub

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网