请试一下:Dim str As String Dim iPos As Integer Dim iCut As Integer Dim iTmp As Integer str = "name;age;addr;;;wei;;;" Debug.Print str iPos = 0 iTmp = Len(str) For iCut = 1 To iTmp If InStr(iCut, str, ";", vbTextCompare) Then iCut = InStr(iCut, str, ";", vbTextCompare) iPos = iPos + 1 End If If iPos = 3 Then str = Left(str, iCut - 1) Exit For End If Next Debug.Print str应该比较通用,不管你的str怎样变动,呵呵
for i=0 to len(str1) a=mid(str1,i,1) if a=";" then b=b+1 if b="所要求的位置" then h=i exit for end if end if next c=mid(str1,1,i) 说明:变量c的值就是所要求的字符串
太容易了 Function GetFlagStr(str1 As String) As String Dim nPos As Integer Dim nLen As Integer Dim temp As String temp = str1 For i = 0 To 2 nPos = InStr(1, str1, ";") nLen = Len(str1) str1 = Right(str1, nLen - nPos) Next temp = Left(temp, Len(temp) - Len(str1) - 1) GetFlagStr = tempEnd Function
a = "aa;bb;cc;dd;ee;ff" i = 3 b = 1 For j = 1 To i b = InStr(b + 1, a, ";", vbTextCompare) Next c = Left(a, b - 1) Debug.Print c
dim str1 as string dim a as string dim b as integer dim c as string dim h as integer h=inputbox("输入位置信息:","提示信息") str1="sdf;skjf;;;;wryeu;" for i=0 to len(str1) a=mid(str1,i,1) if a=";" then b=b+1 if b=h then h=i exit for end if end if next c=mid(str1,1,i) 说明:变量c的值就是所要求的字符串
Str1 = "name;age;addr;;;wei;;;" v = Left(Str1, 1, ";;;")
如果是要删除第n个分号后的内容,可改为: Function GetFlagStr(str1 As String,n as integer) As String Dim nPos As Integer Dim nLen As Integer Dim temp As String temp = str1 For i = 0 To n nPos = InStr(1, str1, ";") nLen = Len(str1) str1 = Right(str1, nLen - nPos) Next temp = Left(temp, Len(temp) - Len(str1) - 1) GetFlagStr = tempEnd Function
我有一个字符串 str="name;age;addr;;;wei;;;"
问题是 我要把第i(i是变量)个分号后面的所有字符给删掉,假如这个i=3 那结果是 str="name;age;addr"
谢谢!!
Dim iPos As Integer
Dim iCut As Integer
Dim iTmp As Integer
str = "name;age;addr;;;wei;;;"
Debug.Print str
iPos = 0
iTmp = Len(str)
For iCut = 1 To iTmp
If InStr(iCut, str, ";", vbTextCompare) Then
iCut = InStr(iCut, str, ";", vbTextCompare)
iPos = iPos + 1
End If
If iPos = 3 Then
str = Left(str, iCut - 1)
Exit For
End If
Next
Debug.Print str应该比较通用,不管你的str怎样变动,呵呵
a=mid(str1,i,1)
if a=";" then
b=b+1
if b="所要求的位置" then
h=i
exit for
end if
end if
next
c=mid(str1,1,i)
说明:变量c的值就是所要求的字符串
Function GetFlagStr(str1 As String) As String
Dim nPos As Integer
Dim nLen As Integer
Dim temp As String
temp = str1
For i = 0 To 2
nPos = InStr(1, str1, ";")
nLen = Len(str1)
str1 = Right(str1, nLen - nPos)
Next
temp = Left(temp, Len(temp) - Len(str1) - 1)
GetFlagStr = tempEnd Function
i = 3
b = 1
For j = 1 To i b = InStr(b + 1, a, ";", vbTextCompare)
Next
c = Left(a, b - 1)
Debug.Print c
dim a as string
dim b as integer
dim c as string
dim h as integer
h=inputbox("输入位置信息:","提示信息")
str1="sdf;skjf;;;;wryeu;"
for i=0 to len(str1)
a=mid(str1,i,1)
if a=";" then
b=b+1
if b=h then
h=i
exit for
end if
end if
next
c=mid(str1,1,i)
说明:变量c的值就是所要求的字符串
v = Left(Str1, 1, ";;;")
Function GetFlagStr(str1 As String,n as integer) As String
Dim nPos As Integer
Dim nLen As Integer
Dim temp As String
temp = str1
For i = 0 To n
nPos = InStr(1, str1, ";")
nLen = Len(str1)
str1 = Right(str1, nLen - nPos)
Next
temp = Left(temp, Len(temp) - Len(str1) - 1)
GetFlagStr = tempEnd Function