VB list判断重复

我现在想做个添加时过滤重复的代码,操作时,可能是添加一个(Command1),也可能是导入几个(Command2),或者修改一个(Command3)三个按钮添加或修改判断... 我现在想做个添加时过滤重复的代码,
操作时,可能是添加一个(Command1),也可能是导入几个(Command2),或者修改一个(Command3)
三个按钮添加或修改判断条件:
"A" "Y" "H" 后的数值,如果三个值都和list1某行里的值相同时,提示重复,则不添加。
"A" "Y" 后的数值,如果两个都和list1某行里的相同, "H" 不同时,提示是否修改,有确定和取消选择,而不是添加
如果是修改时,"A" "Y"值和list里的值相同时,提示重复,同样不添加,"A" "Y"值和list里的值相同,而"H"不同,则提示是否修改,有确定和取消选择
在添加或修改时,编号要始终按顺序排列,"B"的数值,允许重复
下面是网友 veket的小号
帮忙写的代码,再次表示感谢:

Function get_str(s As String, s1 As String, s2 As String) As String
Dim m, n As Integer
m = InStr(1, s, Left(s1, 1))
If s2 = "" Then
get_str = Mid(s, m + 1)
Else
n = InStr(1, s, Left(s2, 1))
get_str = Mid(s, m + 1, n - m - 1)
End If
End Function
Private Sub Command1_Click()
List1.AddItem Right("000" & List1.ListCount + 1, 4) & " " & "A" & Text1.Text & "Y" & Text2.Text & "H" & Text3.Text & "B" & Text4.Text
End Sub
Private Sub Command2_Click()
For i = 0 To List2.ListCount - 1
List1.AddItem Right("000" & List1.ListCount + 1, 4) & " " & Mid(List2.List(i), 7)
Next i
End Sub

Private Sub Command3_Click()
If List1.List(List1.ListIndex) = "" Then
MsgBox "没有选中"
Else
List1.List(List1.ListIndex) = Right("000" & List1.ListIndex + 1, 4) & " " & "A" & Text1.Text & "Y" & Text2.Text & "H" & Text3.Text & "B" & Text4.Text
End If
End Sub
Private Sub Form_Load()
List2.AddItem "0001 A2Y2H2B5"
List2.AddItem "0002 A2Y3H2B5"
List2.AddItem "0003 A3Y3H3B6"
List2.AddItem "0004 A4Y4H5B6"
List2.AddItem "0005 A5Y5H6B7"
List2.AddItem "0006 A3Y2H3B7"
List2.AddItem "0007 A6Y6H6B8"
End Sub
Private Sub List1_Click()
Dim s As String
s = List1.List(List1.ListIndex)
Text1.Text = get_str(s, "A", "Y")
Text2.Text = get_str(s, "Y", "H")
Text3.Text = get_str(s, "H", "B")
Text4.Text = get_str(s, "B", "")
End Sub
展开
 我来答
veket的小号
2014-02-16 · TA获得超过3371个赞
知道大有可为答主
回答量:3762
采纳率:0%
帮助的人:3988万
展开全部

楼主的逻辑描述还是太含糊了..........

更多追问追答
追问
不好意思,没文化真可怕,的确是初中没毕业,我的意思是:
添加数据时,判断"A" "Y"是否与list1中有重复项,当"A" "Y"相同,仅 "H"不同时,提示是否修改,有确定和取消选择,点确定,则把list1里的“H”替换成新数据,点取消则保持原数据,只是修改该行,而不添加行。
如果是批量导入的话,也要循环判断是否和list1重复。
始终保证list1中"A" "Y"没有重复项。
追答
那么请问 list中 有多项符合【 当"A" "Y"相同,仅 "H"不同时】 这个条件  是全部改呢?还是 只改最靠前的一个呢?
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
小饼干吖
2014-02-16
知道答主
回答量:21
采纳率:0%
帮助的人:5.2万
展开全部
楼主的逻辑描述
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
syx54
2014-02-16 · TA获得超过7378个赞
知道大有可为答主
回答量:6567
采纳率:83%
帮助的人:2749万
展开全部
哈哈,似曾相识,又来了!
怎么还没有解决呢?
似乎,方案重新设计了???
更多追问追答
追问
老师好,不好意思总麻烦您,我在list项上又添加了点东西,我发现我做的越来越乱了,总想着去完善,结果问题又出现了,添加内容时过滤重复总做不好,我现在已经知道怎么过滤或修改单条内容了,如果是批量添加的话,还不知道怎么做,您帮我改改Command2按钮代码吧,最好按以上的代码改,我刚分析明白。
没文化真可怕
追答
你这个问题的关键是:基础知识不扎实,就在研究复杂问题了。我们家乡话说的是“一口想吃成个胖子”。
如果对于添加一条新的,可以避免重复了,那么对于所谓的批量,那不就是若干个一条的问题吗?
当然用循环了!
问题1:对于添加一条新的,可以用下面的语言来描述吧!
for i = 0 to List1.listcount-1
if 新项 = list1.list(i) Then
exit for
end if
next i
if i > List1.listcount -1 Then
'就添加新项目
end if

问题2:对于添加若干个,假设n个,那就是在上面的代码,外面再用循环n次
for j = 1 To n '------------------------外循环,决定添加多少次
for i = 0 to List1.listcount-1
if 新项 = list1.list(i) Then
exit for
end if
next i
if i > List1.listcount -1 Then
'就添加新项目
end if
next j '------------------------外循环
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式