循环语句求教高手,谢谢!!!
有字符串aa:
aaa
bbb
ccc
ddd
eee
fff有字符串bb:
bbb kkk
ddd kkk
fff kkk我想把字符串aa和bb各以vbcrlf分割,然后用分割后的aa里的每个数据和分割后的bb里的每个数据循环比较后,写入字符串cc,如分割后的aa里的每个数据在分割后的bb里的数据里有部分相同(如aa里的bbb和bb里的bbb kkk)
,则把bb里的数据写入cc(aa里的数据bbb不写入),如分割后的aa里的每个数据在分割后的bb里的数据不相同(如aa里的aaa),则把aa里的数据写入cc,写入后的cc为:
aaa
bbb kkk
ccc
ddd kkk
eee
fff kkk
有字符串aa:
aaa
bbb
ccc
ddd
eee
fff有字符串bb:
bbb kkk
ddd kkk
fff kkk我想把字符串aa和bb各以vbcrlf分割,然后用分割后的aa里的每个数据和分割后的bb里的每个数据循环比较后,写入字符串cc,如分割后的aa里的每个数据在分割后的bb里的数据里有部分相同(如aa里的bbb和bb里的bbb kkk)
,则把bb里的数据写入cc(aa里的数据bbb不写入),如分割后的aa里的每个数据在分割后的bb里的数据不相同(如aa里的aaa),则把aa里的数据写入cc,写入后的cc为:
aaa
bbb kkk
ccc
ddd kkk
eee
fff kkk
Split函数
描述返回一个下标从零开始的一维数组,它包含指定数目的子字符串。语法Split(expression[, delimiter[, count[, compare]]])Split函数语法有如下几部分:部分 描述
expression 必需的。包含子字符串和分隔符的字符串表达式 。如果expression是一个长度为零的字符串(""),Split则返回一个空数组,即没有元素和数据的数组。
delimiter 可选的。用于标识子字符串边界的字符串字符。如果忽略,则使用空格字符(" ")作为分隔符。如果delimiter是一个长度为零的字符串,则返回的数组仅包含一个元素,即完整的 expression字符串。
count 可选的。要返回的子字符串数,–1表示返回所有的子字符串。
compare 可选的。数字值,表示判别子字符串时使用的比较方式。关于其值,请参阅“设置值”部分。
设置值compare参数的设置值如下:常数 值 描述
vbUseCompareOption –1 用Option Compare语句中的设置值执行比较。
vbBinaryCompare 0 执行二进制比较。
vbTextCompare 1 执行文字比较。
vbDatabaseCompare 2 仅用于Microsoft Access。基于您的数据库的信息执行比较。
dim KK() as string
dim DD() as string
dim Cc as string
dim I as long,J as long
kk=split(aa,chr(13))
dd=split(bb,chr(13))
j=0
for i=0 to ubound(kk) step 2 '奇
cc=cc & kk(i) & chr(13) & dd(j)
j=j+1
next
'这只是普通演示,还要一些改进,自己完成吧.
Dim tempaa() As String, tempbb() As String
Dim Cc As String, I As Long, J As Long
tempaa = Split(aa, vbCrLf)
tempbb = Split(bb, vbCrLf)For I = 0 To UBound(tempaa)
For J = 0 To UBound(tempbb)
If InStr(tempbb(J), tempaa(I)) > 0 Then
tempaa(I) = tempbb(J)
Exit For
End If
Next
Next
Cc = Join(tempaa, vbCrLf)
Erase tempaa
Erase tempbb
MsgBox Cc
End Sub
你的代码有一点小问题,还请您帮助,谢谢!!!
Text1 = "aaa" & vbCrLf & "bbb" & vbCrLf & "ccc" & vbCrLf & "ddd" & vbCrLf & "bbb" & vbCrLf & "eee" & vbCrLf & "eee"
Text2 = "bbb" & Space(1) & "kkk" & vbCrLf & "eee" & Space(1) & "kkk" & vbCrLf & "eee" & Space(1) & "vvvvvvvvvvvv"
运行后,
text3为:
bbb kkk
ccc
ddd
bbb kkk
eee kkk
eee kkk
不知为何没有
eee vvvvvvvvvvvv
还请您帮助,谢谢!!!
表A一个字段A,存储
aaa
bbb
ccc
ddd
eee
fff
表两个字段A,B,存储:
bbb kkk
ddd kkk
fff kkk然后连接
select b.* from a left join b on a.A=b.A
Text1 = "aaa" & vbCrLf & "bbb" & vbCrLf & "ccc" & vbCrLf & "ddd" & vbCrLf & "bbb" & vbCrLf & "eee"
Text2 = "bbb" & Space(1) & "kkk" & vbCrLf & "eee" & Space(1) & "kkk" & vbCrLf & "eee" & Space(1) & "vvvvvvvvvvvv"
Dim tempaa() As String, tempbb() As String, tempcc() As String
Dim I As Long, J As Long, num As Long
Dim exist As Boolean
num = 0
tempaa = Split(Text1, vbCrLf)
tempbb = Split(Text2, vbCrLf)For I = 0 To UBound(tempaa)
exist = False
For J = 0 To UBound(tempbb) If InStr(tempbb(J), tempaa(I)) > 0 Then
num = num + 1
ReDim Preserve tempcc(1 To num)
tempcc(num) = tempbb(J)
exist = True
End IfNext
If exist = False Then
num = num + 1
ReDim Preserve tempcc(1 To num)
tempcc(num) = tempaa(I)
End If
NextText3 = Join(tempcc, vbCrLf)
Erase tempaa
Erase tempbb
Erase tempcc
End Sub
一个SQL语句就可以解决。
字符串:
aaa
bbb kkk
bbb xxxxxxxx
ccc
ddd
bbb kkk
bbb xxxxxxxx
eee kkk
eee vvvvvvvvvvvv
eee kkk
eee vvvvvvvvvvvv
如何使其中的重复的只保留一个,谢谢!!!
结果为:
aaa
bbb kkk
bbb xxxxxxxx
ccc
ddd
eee kkk
eee vvvvvvvvvvvv